Erlang 编程/实际操作示例
显示
-module(tut)。
-export([rev/1,dob/1]).
%% double dob([ S | T ]) -> F = [ 2*S | [] ], dob(T, F). dob([ S | T ], F) -> X = [ 2*S | F ], dob(T, X); dob([], X) -> rev(X).
%% reverse rev([ S | T ]) -> F = [ S | [] ], demo(T, F).
demo([ S | T ], C) -> F = [ S | C ], demo(T, F); demo([], L) -> [], L.
请注意以上代码中局部变量的范围
运行
c(tut). tut:dob([1, 2, 3]). tut:rev(tut:dob([1, 2, 3])).
另一个模块,称作 quicksort
-module(quicksort). -export([sort/1]).
sort([ S | F ]) -> % for X < S, bind X to F sort([ X || X <- F, X < S ]) ++ [S] ++ sort([ X || X <- F, X > S ]); sort([]) -> [].
运行
c(quicksort). quicksort:sort([9,4,3,7,8,5,1,2,6]).