我在 ghci.exe 目录中创建了一个新的 quick.hs 文件。而且内容是

quicksort::(Ord a)=>[a]->[a]
quicksort []=[]
quicksort (x:xs)=
    let smaller = [a |a<-xs,a<=x]
        larger = [a |a<-xs,a>x]
    in  quicksort smaller ++ [x] ++ quicksort larger

当我在 ghci 命令 lline 中发出 :l quick 时,输出是
Prelude> :l quick
[1 of 1] Compiling Main             ( quick.hs, interpreted )

quick.hs:5:17: error:
    parse error on input ‘=’
    Perhaps you need a 'let' in a 'do' block?
    e.g. 'let x = 5' instead of 'x = 5'
Failed, modules loaded: none.

我已经多次同意这种问题。地球上有什么问题?

最佳答案

您在评论中说您确定源文件中没有制表符,但是检查问题的来源,确实在 in 标记之前有一个。用适当数量的空格替换它,你会一切顺利。

关于Haskell 错误 : parse error on input '=' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39122970/

10-13 03:07