Erlang中文论坛
标题:
lists:foldl的用法
[打印本页]
作者:
high佬全
时间:
2015-1-10 20:46
标题:
lists:foldl的用法
lists:foldl/3 我想碰过erlang的人都应该会经常遇到的。因为在很多时候别人编写的函数
内参数可能只有二、三个,但是实际上我们很多时候都要把一堆的数据放到这些参数中,
因此列表的方式就是我们第一时间想到的方法(可能有部分牛人第一时间会有其他神奇的
方法达成目标,但至少对于我这种初哥第一印象就是用列表的方式 -.-!)。既然用到了列
表方式,那么在erlang只提供递归来作为循环的情况下,lists:fold可以大大缩短我们的代码
量
foldl(Fun, Acc0, List)
Acc0就是
累积器,把Fun的得到的结果存储起来给下个循环
List就是传给Fun的参数集,每次循环都由List取出一个元项传给Fun
Fun是指每次循环时所实行的函数,其中内面有两个参数,一个是从List中每次取得的,
另一个就是Acc0累积器。
实际的用法可以从本站的lists的函数中找到,不过例子就有点简短。等下次发帖时我再找
一个更好的列子分享
注:(本人只是新手,所以有解析错误时欢迎指出,我尽快修改错误以免害了别人的同时,
也感谢你的指导,因为你让我找到了自己的BUG!!!!)
作者:
dreamxyp
时间:
2015-1-11 18:23
不错,
作者:
茶叶feng
时间:
2018-7-3 18:30
虽然有lists:foldl/3和lists:foldr/3这两个函数,我还是喜欢自己实现递归多一点,感觉这样看起来更清晰明朗,以前经常用lists:foldl/3,用多了之后自己都不知道这个函数是做什么的了
欢迎光临 Erlang中文论坛 (https://bbs.erldoc.com/)
Powered by Discuz! X3.3