设为首页收藏本站

Erlang中文论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 18535|回复: 2
打印 上一主题 下一主题

lists:foldl的用法

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-10 20:46:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   lists:foldl/3 我想碰过erlang的人都应该会经常遇到的。因为在很多时候别人编写的函数
内参数可能只有二、三个,但是实际上我们很多时候都要把一堆的数据放到这些参数中,
因此列表的方式就是我们第一时间想到的方法(可能有部分牛人第一时间会有其他神奇的
方法达成目标,但至少对于我这种初哥第一印象就是用列表的方式 -.-!)。既然用到了列
表方式,那么在erlang只提供递归来作为循环的情况下,lists:fold可以大大缩短我们的代码

foldl(Fun, Acc0, List)
  Acc0就是累积器,把Fun的得到的结果存储起来给下个循环
   List就是传给Fun的参数集,每次循环都由List取出一个元项传给Fun
  Fun是指每次循环时所实行的函数,其中内面有两个参数,一个是从List中每次取得的,
另一个就是Acc0累积器。
   实际的用法可以从本站的lists的函数中找到,不过例子就有点简短。等下次发帖时我再找
一个更好的列子分享

注:(本人只是新手,所以有解析错误时欢迎指出,我尽快修改错误以免害了别人的同时,
也感谢你的指导,因为你让我找到了自己的BUG!!!!)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

沙发
发表于 2015-1-11 18:23:19 | 只看该作者
不错,
回复

使用道具 举报

板凳
发表于 2018-7-3 18:30:46 | 只看该作者
虽然有lists:foldl/3和lists:foldr/3这两个函数,我还是喜欢自己实现递归多一点,感觉这样看起来更清晰明朗,以前经常用lists:foldl/3,用多了之后自己都不知道这个函数是做什么的了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Erldoc.com  

GMT+8, 2024-4-23 16:43 , Processed in 0.378736 second(s), 9 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表