4

Haskellの anIntと aの違いはありますか? Maybe Intある場合、どうすれば aMaybe Intをに変換できIntますか?

4

2 に答える 2

3

データ型は、null になる可能性のMaybeある値を表し、通常、値だけで成功するか、値なしで失敗する関数からの戻り値として使用されます。と の 2 つのコンストラクターがありNothingます。次のように使用できます。Just aa

safeHead :: [a] -> Maybe a
safeHead [] = Nothing
safeHead (x:xs) = Just x

パターン マッチングを使用するか、または からいくつかの関数を使用して、値を抽出できますData.Maybe。私は通常前者を好むので、次のようになります。

main = do
    let xs :: [Int]
        xs = someComputation 1 2 3
        xHead = safeHead xs
    case xHead of
        Nothing -> putStrLn "someComputation returned an empty list!"
        Just h  -> putStrLn $ "The first value is " ++ show h
        -- Here `h` in an `Int`, `xHead` is a `Maybe Int`
于 2013-10-09T21:02:36.620 に答える