我有一個函數應該只返回列表的尾部的問題。這些函數是myTail,即使輸入是空列表,也應該提供可用的結果。Haskell尾空函數爲空列表
我想明白了所有3種方式:模式匹配,守衛方程和條件表達式
這個工程:
> myTail_pat :: [a] -> [a]
> myTail_pat (x:xs) = xs
> myTail_pat [] = []
但這:
> myTail_guard (x:xs) | null xs = []
> | otherwise = xs
給我的錯誤:程序錯誤:模式匹配失敗:myTail_guard [] 我該如何聲明沒有模式的函數?
謝謝。
可以幫助你:http://cs.anu.edu.au/Student/comp1100/haskell/tourofsyntax.html#衛兵 – Artelius 2009-11-18 22:28:35
你可以'myTail = drop 1' – newacct 2009-11-18 23:40:04
模式匹配版本更像haskell一樣。 – Rayne 2009-11-19 08:58:59