我是函數式編程和Haskell的新手。試圖學習它。不知道什麼是錯的,定義如下:Haskell函數定義不按預期方式工作
功能定義test.h
drop5 [a] = drop 5 [a]
嘗試當我改變了定義以下使用此功能,我得到程序錯誤
$:load test.h
$drop5 [2,3,4,5,6,7,8]
Program error: pattern match failure: drop5 [2,3,4,5,6,7,8]
$:t drop5
drop5 :: [a] -> [a]
有用;這意味着它接受一個列表並丟棄列表
drop5 ns = drop 5 ns
在這種情況下,當打印類型我看到的第5個元素:
$:t drop5
drop5 :: [a] -> [a]
我不知道爲什麼比第二不同的第一個定義?那麼錯誤「程序錯誤:模式匹配失敗的意思」是什麼?
這很有道理。謝謝!!我嘗試drop5 [2],並沒有返回任何錯誤。 – patronus