我正在学习erlang,并且对于并行化工作是多么容易印象深刻.为了练习一点,我挖出了好的纤维Fibanocci序列.在下面的代码中,我尝试通过一次计算三个昂贵的产品来利用并行化.
-module (fib4).
-export ( [main/1] ).
main (N) ->
fib (list_to_integer (atom_to_list (hd (N) ) ) ),
halt (0).
path (1, Acc) -> Acc;
path (N, Acc) when N rem 2 =:= 0 ->
path (N - 1, [step | Acc] );
path (N, Acc) ->
path ( (N - 1) div 2, [jump | Acc] ).
fib (N) -> fib (1, 1, path (N, [] ) ).
fib (N, Nplus1, [Last] ) ->
case Last of
step -> …Run Code Online (Sandbox Code Playgroud)