この問題の原因を理解するのに苦労しています。ポイントへ:
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 では、 float の単純な乗算の繰り返しでこのハングが発生するのでしょうか?