2
我有以下功能:非詳盡模式IF-THEN-ELSE
myMaximum [] = error "There is no such thing as 'maximum' in an empty list."
myMaximum [x] = x
myMaximum (x:xs) = if x >= tailMax
then x
else tailMax
where tailMax = myMaximum xs
當我運行myMaximum [1..5]
我工作得很好,但將在第一行規定,當我運行myMaximum [5..1]
錯誤。如果我把第一行寫出來,它會抱怨在myMaximum
上有一個非窮盡的模式。但爲什麼這種模式不完全?如何調用它[1..5]
工作得很好,[5..1]
顯然會導致空列表參數爲myMaximum
?
只是一件事,你應該改變你的錯誤信息爲''[name]:[cause]「'的標準形式,所以這應該是'error'myMaximum:空列表'' – AJFarmar
@AJFarmar感謝提示! – Metalcoder