gpt4 book ai didi

haskell - 在haskell中使用foldr的列表长度

转载 作者:行者123 更新时间:2023-12-05 08:54:39 26 4
gpt4 key购买 nike

我在 haskell 中使用 foldr 编写了以下代码来计算列表的长度。当我编译代码时,它给我的错误是“myfoldr.hs:3:1: parse error on input ‘where’”。谁能告诉我这段代码中我可能遗漏了什么或做错了什么?

mylength :: [Int] -> Int
mylength l = foldr f 0 l
where
f :: Int -> Int -> Int
f x y = y+1

最佳答案

在 Haskell 中,空格很重要 - 查看 guide on the Haskell wiki .

更正确地格式化你的代码给出:

mylength :: [Int] -> Int
mylength l = foldr f 0 l
where
f :: Int -> Int -> Int
f x y = y + 1

哪个works perfectly (尽管 f 的参数 x 有点多余,您可能希望将其写为 f _ y = y + 1,或者使用像 foldr (\_ x -> x + 1) 0 l) 这样的 lambda 表达式。

关于haskell - 在haskell中使用foldr的列表长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48990254/

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