鉴于mapAccumR
通常被描述为map
和foldr
的组合,我想知道为什么foldr
和{{1}的映射功能期望参数的顺序相反。
mapAccumR
使用的顺序是值,累加器:
foldr
λ foldr (-) 0 [1,2]
-1
λ foldr (\val acc -> val - acc) 0 [1, 2]
-1
使用的顺序是累加器,值:
mapAccumR
因此,λ mapAccumR (\acc val -> (val - acc, val)) 0 [1,2]
(-1,[1,2])
是地图和mapAccumR
的组合,但并不完全像人们预期的那样。我想知道是什么促成了这个设计决定。这种差异是否有原因或优势?
谢谢!