我正在研究99个Haskell问题,并找到了一个解决方案,用于查找列表的最后一个元素:
myLast = foldr1 (const id)
Run Code Online (Sandbox Code Playgroud)
类型const就是a -> b -> a但的const id是b -> a -> a
有啥这里的魔力?
在完成99个问题练习中的第一个问题(" 查找列表的最后一个元素 ")后,我想看看我的解决方案与其他问题的比较,我找到了这个解决方案.
myLast' = foldr1 (const id)
Run Code Online (Sandbox Code Playgroud)
这个文档似乎表明它foldr1有两个参数,第一个是函数,第二个是列表.但是这个定义似乎只是作为一个参数.是否有像这样传递的参数的隐式定义?
myLast' xs = foldr1 (const id) xs
Run Code Online (Sandbox Code Playgroud)
我已经看过了的定义foldr1,const以及id,但我有一个很难理解如何将这些三项工作一起返回列表中的最后一项.
haskell ×2