我正在嘗試創建一個驗證輸入String -> Maybe Int的函數。我檢查輸入字符串是否是一個數字,然後檢查該數字是否在一個範圍內。到目前爲止,我有 validateNumber :: String -> Maybe Int
validateNumber n = go $ (readMaybe::String -> Maybe Int) n
where
go (Just
「回報」應該在一些單子的背景下緊裹: *Main> :i return
class Applicative m => Monad (m :: * -> *) where
...
return :: a -> m a
...
-- Defined in ‘GHC.Base’
如果我問GHCI什麼「返回Nothing」的類型,它符合是: *Main> :
想象一下,我有一個數據類型Person。 data Person = Person String Person
的2人應該是母親。 showGrandmother :: Person -> Maybe Person
showGrandmother (Person _ mother) = Just mother
只會從人x顯示母親。 我如何顯示祖母?
我使用此功能在以下格式的字符串讀自然數的列表:[1, 2, 3]: readMaybeIntList :: String -> Maybe [Int]
readMaybeIntList line = case readMaybe line of
Just l -> return l
Nothing -> Nothing
現在它僅適用於整數 - 會是
我正在練習一些哈斯克爾以更好地理解\,case.. of和Maybe。 我有這個小功能,這裏應該返回Nothing如果數組是空的,如果Just y y等於陣列XS的頭部和Just (tail xs)如果y不等於陣列XS的頭。 我將函數的返回類型設置爲Maybe a,因爲在一種情況下,它應該返回Int,而另一個則返回[Int]。 funct :: Int -> [Int] -> Maybe a
f