gpt4 book ai didi

syntax - 在 where 子句中的 Haskell 解析器错误

转载 作者:行者123 更新时间:2023-12-03 14:30:28 25 4
gpt4 key购买 nike

rs 有什么问题|第一个 where 部分的定义?

palindrome :: [a] -> [a]

palindrome xs = con xs rs
where con a b = rev (rev a []) b
rs = rev xs -- here
where rev [] rs = rs
rev (x:xs) rs = rev xs (x:rs)

我只是在学习 Haskell,但它的语法规则让我感到困惑。错误信息是
[1 of 1] Compiling Main             ( pelindrome.hs, interpreted )

pelindrome.hs:5:8: parse error on input `rs'

最佳答案

你的缩进是错误的,我认为你只能有一个 where在那里(我可能错了。我不是haskell人)。对 rev 的调用也缺少一个参数。 (一个空列表):

palindrome :: [a] -> [a]
palindrome xs = con xs rs
where con a b = rev (rev a []) b
rs = rev xs [] -- here
rev [] rs = rs
rev (x:xs) rs = rev xs (x:rs)

main = print (palindrome "hello")

打印出来:
"helloolleh"

我现在要试着理解它。不管怎样,玩得开心!

编辑:现在对我来说很有意义。我认为这是正确的版本。有关 Haskell 缩进规则,请阅读 Haskell Indentation

关于syntax - 在 where 子句中的 Haskell 解析器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/412828/

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