3
我剛剛進入Haskell,並且我正在嘗試創建一個函數,給出一個數字列表將返回其中所有負數的列表。 所以我做了這個當列表參數有多個元素時,Haskell得到錯誤
negative:: [Int] -> [Int]
negative [x] = [z | z <- [x], x < 0]
當我嘗試它只有一個列表中的元素它的作品,因爲它應該
負[-1]返回[-1]
負[1]返回[]
然而,當我添加更多的號碼,如例如 負[0,-1]我得到以下錯誤:
臨gram error:pattern match failure:negative [Num_fromInt instNum_v30 0,Num_fromInt instNum_v30 -1]
我試着用空格和空格之間沒有空格鍵入數字,但結果相同。我猜測我的代碼有問題,但是因爲我仍然習慣了Haskell,所以我很難找到它。任何幫助將不勝感激。
這個錯誤在SO上很常見。我想知道是否有某些課程/教程在某處使用'[x]'作爲任意列表的符號,而不是單例列表。 – chi