谁能解释一下这个 Haskell 函数?

8
Haskell函数
foo = zipWith ($) . repeat

与...完全相同

map

但是我不明白原因 :-( 谁能给出解释呢?非常感谢!
1个回答

14

好的,我们有

foo = zipWith ($) . repeat

就是说

foo f = zipWith ($) (repeat f)

repeat f 生成一个无限的由 f 副本组成的列表。然后 zipWith 使用 ($) 运算符将 [无限的 f 副本列表] 的每个元素应用于传入列表的每个元素。这就是 map 所做的。

是的?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接