lists:foldl的一个比较好的列子
今天遇到了一个比较好的例子,话不多说了,下面开始写我遇到的例子-record(list,{one = 0, two =0, three= 0,four =0}).
-define(ONE,one). -define(THREE,three).
-define(TWO,two). -define(FOUR,four).
add(TypeList,Record_list) ->
Fun= fun({Type,Arg},List) ->
case Type of
?ONE -> List#list{List#list.one+1};
?TWO -> List#list{List#list.two+1};
?THREE -> List#list{List#list.three+1};
? FOUR -> List#list{List#list.four+1}
end
end,
lists:foldl(Fun,Record_list,TypeList).
这个函数add的作用是把列表TypeList中的元组一一对应加在
Record_list的记录中,虽然这看似是简单,但是在实际中的使用率非常高,
所以我才觉得这个例子非常好。
Arg参数没有用到
而且返回的写法没问题吗
应该是
List#list{one = List#list.one+Arg}吧 youthy 发表于 2015-1-23 10:22
Arg参数没有用到
而且返回的写法没问题吗
应该是
厉害,一针见血,你指正得非常对,可能冲忙写,连我都没留意到。多谢你的指教:D -record(list,{one = 0, two =0, three= 0,four =0}).
-define(ONE,one). -define(THREE,three).
-define(TWO,two). -define(FOUR,four).
add(TypeList,Record_list) ->
Fun= fun({Type,Arg},List) ->
case Type of
?ONE -> List#list{one = List#list.one+Arg};
?TWO -> List#list{two = List#list.two+Arg};
?THREE -> List#list{three = List#list.three+Arg};
? FOUR -> List#list{four = List#list.four+Arg}
end
end,
lists:foldl(Fun,Record_list,TypeList).
high佬全 发表于 2015-1-24 00:20
-record(list,{one = 0, two =0, three= 0,four =0}).
-define(ONE,one). -define(THREE,three).
-defi ...
我也是只懂些皮毛,多多交流 youthy 发表于 2015-1-25 19:29
我也是只懂些皮毛,多多交流
我也是初哥,:lol,所以有什么错也请你多多指教,同时你有什么好的东西记得分享下
给我这个小弟、
页:
[1]