以下兩個功能不同的表現:模式與衛兵:否則不匹配?給定一個空字符串時
guardMatch [email protected](x:xs)
| x == '-' = "negative " ++ xs
| otherwise = l
patternMatch ('-':xs) = "negative " ++ xs
patternMatch l = l
這裏我的輸出:
*Main> guardMatch ""
"*** Exception: matching.hs:(1,1)-(3,20): Non-exhaustive patterns in function guardMatch
*Main> patternMatch ""
""
問題:爲什麼不「否則」接近趕上空字符串?
IIRC按照你的說法翻譯'if'。 – fuz
謝謝,這是有道理的。 –