gpt4 book ai didi

haskell - 这个函数如何等同于获取列表中的最后一项?

转载 作者:行者123 更新时间:2023-12-02 16:07:46 25 4
gpt4 key购买 nike

完成 99 questions exercises 中的第一个问题(“查找列表的最后一个元素”)后,我想看看我的解决方案与其他解决方案相比如何,我发现 this solution .

myLast' = foldr1 (const id)

这个documentation似乎表明 foldr1 有两个参数,第一个是函数,第二个是列表。但这个定义似乎只采用函数作为参数。像这样传递的参数是否有隐式定义?

myLast' xs = foldr1 (const id) xs

我已经查找了 foldr1constid 的定义,但我很难理解这三个共同返回列表中的最后一项。

最佳答案

你说得完全正确。在 Haskell 中,一个带有两个参数的函数实际上可以被视为一个带有一个参数并返回另一个带有一个参数的函数的函数;这被称为 currying 。请注意,foldr1 的函数签名是:

(a -> a -> a) -> [a] -> a

虽然我们经常将其视为“一个接受函数和列表作为参数并返回值的函数”,但它实际上是“一个接受函数作为参数并返回一个接受列表并返回值的函数”一个值”。

关于haskell - 这个函数如何等同于获取列表中的最后一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18598076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com