我正在努力理解这个问题的原因。重点:
1) 将整数 ( 10 ) 传递给以下分解函数立即起作用:
test() ->
X = 10,
F = factorize(X).
factorize(0) -> 1;
factorize(N) -> N * factorize(N-1).
2)传递一个浮点数(10.0)将导致梁进程挂起,占用高 CPU 甚至不会终止。注意这是一个很小的值。我可以分解一个高整数并获得几乎立即的响应,但是一个小的浮点数 10.0 会导致它挂起。
test() ->
X = 10.0, <-- NOTICE THE DOT ZERO 10.0
F = factorize(X).
factorize(0) -> 1;
factorize(N) -> N * factorize(N-1).
问题:为什么在 Erl Earth 上,这种挂起会发生在浮点数的乘法重复中?