我在Haskell哈斯克爾:函數薪酬返回Maybe類型:異常與fromJust功能
payment :: [(Integer , Integer)] -> Integer -> [(Integer , Integer)] -> Maybe [(Integer , Integer)]
payment portemonnaie amount cashier | content (fromJust (pay portemonnaie amount)) - amount == 0 = Just []
| pay portemonnaie amount == Nothing = Nothing
| otherwise = payExact cashier (content (fromJust (pay portemonnaie amount)) - amount)
這裏的問題是寫了下面的功能。通過詢問
*** Exception: Maybe.fromJust: Nothing
我試圖阻止:所以當功能「買單」返回Nothing我得到下面的異常
| pay portemonnaie amount == Nothing = Nothing
但顯然這是不可能的。有人有更聰明的方式來構建這個?謝謝
使用模式匹配,避免部分功能。 – chi
也'map','fromMaybe'或'也許'可能是你想要在這裏;) – Carsten