erlang程序实例

来源:互联网 发布:tp的访客网络占带宽吗 编辑:程序博客网 时间:2024/06/09 18:11

        erlang也学了有一阵子了,环境也配置了.平常只是把书上的例子敲到电脑上去运行.也去看了一下ejabberd的代码,觉得还是要自己去写一些代码才可以实际掌握语言的编程理念,毕竟这是一门函数式编程语言.不同于一般其它的命令式编程.

       先从它的基本数据类型列表的处理开始吧.程序实现了列表的逆序,列表的连接.连接函数的参数是一个列表,列表每个元素也是一个列表.还是上代码吧!

-module(mylists).-export([reverse/1]).-export([concate/1]).-export([flatten/1]).reverse([],Ret) -> Ret;reverse([H|T],Ret) ->.       Temp = [H|Ret],.       reverse(T,Temp).reverse(L) -> reverse(L,[]).concate([],L) -> L;concate([H|T],L) ->.       Temp=[H|L],.       concate(T,Temp).concate([]) -> [];concate([H|T]) -> concate(reverse(H),concate(T)).
flatten(L) ->  Temp = concate(L), .       case Temp == L of.       .       true -> Temp;.       .       false -> flatten(Temp).       end.

运行结果如下:

5> c(mylists.erl).
{ok,mylists}
6> mylists:reverse([1,3,4,5]).
[5,4,3,1]

7> mylists:concate([[1,2,4],[45,14,634]]).     
[1,2,4,45,14,634]
8> mylists:concate([[1,2,4],[45,14,634],[4,5,6]]).
[1,2,4,45,14,634,4,5,6]


59> mylists:flatten([[1,3,45,667,0,[245]],[23],[1,3,4],[1,[3,5,[4]]]]).
[1,3,45,667,0,245,23,1,3,4,1,3,5,4]



原创粉丝点击