输入"|"时出现Haskell错误 没有模块失败

use*_*240 1 syntax haskell

我在Haskell中很新,我有一个非常奇怪的错误:

insertion el [] = [el]
insertion el (x:xs) = | el < x = el:x:xs
                      | otherwise = x:insertion el xs
Run Code Online (Sandbox Code Playgroud)

哪个给了我这个错误,就在管道后面的第二行:输入`|'解析错误 失败,模块加载:无.

我真的不明白,你有提示吗?提前致谢 :)

小智 5

当您使用带有函数定义的保护(管道符号)时,不要使用等号的函数名称和参数.它应该写成这样:

insertion el [] = [el]
insertion el (x:xs)
   | el < x    = el:x:xs
   | otherwise = x:insertion el xs
Run Code Online (Sandbox Code Playgroud)

第一个后卫不需要在下一行,但这往往是一般风格.