top page > computer > haskell > web_lecture > for_programmer > maybe.html
更新日:
文責: 重城良国

Maybe値

Maybe値とは

Maybe値はJust [値]またはNothingだ。値が存在すればJust [値]で存在しなければNothingだ。次の「パターンマッチ」のところでMaybe値の使いかたを学ぶ。ここではMaybe値の意味やリテラル表記について学ぼう。

Maybe値の存在意義

全域関数と部分関数

全域関数はすべての引数に対して値を返す関数だ。部分関数には引数によっては値を返さない関数も含まれる。関数f(x) = 1 / xは引数0のときの値がないので全域関数ではない部分関数だ。コードのなかの全域関数でない部分関数は予想外のエラーを引き起こす。

例外やNull値では

引数に対する値が存在しないとき例外を投げる、またはNull値を返すという方法もある。例外やNullは放置されていても気がつかない。

Maybe型では

Maybe型ではJust [値]から[値]を取り出すときに「失敗の可能性がある」ことを意識しその処理を書くことになる。

表示してみる

% ghci
Prelude> Just 8
Just 8
Prelude> Nothing
Nothing

Just 8は計算が成功し結果が8ということだ。Nothingは計算の失敗を示す。引数xが0のときはNothingを、そうでないときはJust (1 / x)を返す関数を考えると、計算の「成功」「失敗」のイメージがつかみやすい。

「Bool値」へもどる 「パターンマッチ」へ

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics