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]).