在this教程中,我發現下面的代碼片段: deposit :: (Num a) => a -> a -> Maybe a
deposit value account = Just (account + value)
withdraw :: (Num a,Ord a) => a -> a -> Maybe a
withdraw value account = if (account < va
我不明白爲什麼我從GHCi得到以下回應。是不是Maybe的構造函數? Prelude> :t Maybe
<interactive>:1:1: Not in scope: data constructor `Maybe'
Prelude> let e = Maybe 5
<interactive>:1:9: Not in scope: data constructor `Maybe'
你不見於Ger.Offen看到0除了錯誤處理,例如,因爲名單是有點Maybe自己:他們有自己的「Nothing‘:[]和自己的’Just」:(:)。 我用Maybe和函數將標準轉換爲「實驗」列表編寫了一個列表類型。 toStd . toExp == id。 data List a = List a (Maybe (List a))
deriving (Eq, Show, Read)
我有一個函數可能會失敗,所以它返回的值需要包裝在一個Maybe中。它使用另一個也可能失敗的函數,這也包含在Maybe中。問題是,爲了讓類型在中間計算中得到解決,我必須「提前」提升函數以在Maybe語境中工作。這導致我得到一個類型Maybe [也許整數],當我想要的是可能[整數]。有問題的函數是exptDecipherString函數,強制「提前」提升的函數是modularInverse函數。 im
我有以下的功能就像一個索引操作: let {
index :: [a]->Int->Maybe a
index [] i = error "Empty list"
index l i = if i <= ((length l) - 1) && i >= 0 then
Just(l !! i)
else
error "Index out