erlang程序实例

        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]



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值