gpt4 book ai didi

haskell - haskell中完整的缩进规则集

转载 作者:行者123 更新时间:2023-12-02 02:19:51 27 4
gpt4 key购买 nike

从哪里可以获得完整的 Haskell 代码编写缩进规则集?

与我的以下问题类似的过去 SO 问题导致我提出上述问题。错误信息背后的原因是什么:parse error on input 'something' ?

我得到的错误信息:

baby.hs:103:2: parse error on input `myList'(error in this line)



我正在尝试编译的代码:
myList = ["aeroplane", "Aeroplane", "AeRoPlAne", "helicopter", "HELICOPTER", "Zebra"]
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
let smallerSorted = quicksort [a | a <- xs, a <= x]
biggerSorted = quicksort [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ biggerSorted

优化编辑:

我将问题中的代码转移到新的 .hs 文件并尝试编译它。仍然存在类似的错误消息。详情如下:

Error
quickSort.hs:5:62: parse error on input `=' Failed, modules loaded: none. (0.02 secs, 0 bytes)

Code quicksort :: (Ord a) => [a] -> [a]
quicksort [] = [] quicksort (x:xs) = let smallerSorted = quicksort [a | a <- xs, a <= x]
biggerSorted = quicksort [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ biggerSorted
myList = ["aeroplane", "Aeroplane", "AeRoPlAne", "helicopter", "HELICOPTER", "Zebra", "America"]

最佳答案

至少对于标准 Haskell(没有语言扩展),布局规则解释 in Section 10.3 of the Haskell 2010 report.

根据您的口味,该报告可能有点正式。 Haskell 上的各种教程和教科书对布局规则有一些更非正式的解释,例如 Haskell Wikibook.

在您的特定情况下,错误消息指向第 103 行,但您只粘贴了几行。我可以看到至少 let-in 结构的缩进被破坏了。您应该编写如下内容:

xs = ["aeroplane", "Aeroplane", "AeRoPlAne", "helicopter", "HELICOPTER", "Zebra"]
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) = let smallerSorted = quicksort [a | a <- xs, a <= x]
biggerSorted = quicksort [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ biggerSorted

关于haskell - haskell中完整的缩进规则集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11261974/

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