为什么累加器AccIn
不是Fun
的左参数?
http://erlang.org/doc/man/lists.html#foldl-3
foldl(Fun, Acc0, List) -> Acc1
Fun = fun((Elem :: T, AccIn) -> AccOut)
Acc0 = Acc1 = AccIn = AccOut = term()
List = [T]
T = term()
我问这个是因为几乎所有其他功能语言(例如haskell
,scala
)都反过来了。您的意思是将左侧折叠可视化为从左侧累积
foldl f z [x1, x2, ..] = ((z f x1) f x2) ..
答案 0 :(得分:0)
与Haskell相同:
foldl(Fun,Acc0,List) - > ACC1
foldl ::(a - > b - > a) - > a - > [b] - >一个
答案 1 :(得分:0)
不同版本的折叠之间的参数顺序的一致性被认为比你提到的任何这样的代数可视化更重要。