Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我是 Haskell 的新手,我遇到了一个非常奇怪的错误:
insertion el [] = [el] insertion el (x:xs) = | el < x = el:x:xs | otherwise = x:insertion el xs
这给了我这个错误,在管道之后的字符的第二行:输入'|'上的解析错误 失败,加载模块:无。
没看懂,求指点 提前致谢 :)
在函数定义中使用守卫(管道符号)时,不要在函数名和参数后面加上等号。它应该这样写:
insertion el [] = [el] insertion el (x:xs) | el < x = el:x:xs | otherwise = x:insertion el xs
第一个后卫不需要在下一行,但这往往是一般的风格。