2013-03-16 39 views
1

我在Haskell很新的,我有一個很奇怪的錯誤:輸入`|'的Haskell錯誤失敗沒有模塊

insertion el [] = [el] 
insertion el (x:xs) = | el < x = el:x:xs 
         | otherwise = x:insertion el xs 

剛管後,給了我這個錯誤,在第二行的caractere: 解析錯誤的輸入`|' 失敗,已加載模塊:無。

我真的不明白, 你會有提示嗎? 在此先感謝:)

+8

刪除第一個'|'之前的'=' – Ingo 2013-03-16 17:19:23

+0

非常感謝!我閱讀的教程中有'=',所以我無法想象這會是問題。再次感謝:) – user2145240 2013-03-16 17:23:35

+6

什麼教程?也許它可以被修復,沒有太多的麻煩。 – 2013-03-16 17:27:28

回答

4

當您使用具有函數定義的守衛(管道符號)時,不要按照函數名稱和帶有等號的參數。它應該寫成這樣:

insertion el [] = [el] 
insertion el (x:xs) 
    | el < x = el:x:xs 
    | otherwise = x:insertion el xs 

第一個警衛不需要在下一行,但這往往是一般風格。