最新

val it : α → α = fun

<<  2005/07  >>

2005/07/06 <a href="http://d.hatena.ne.jp/Nabetani/20050703#p1">??演算子</a>

へぇ、というか別に珍しいものでもない気が、と思うけど、そんなものが用意されているとはなぁ。

Haskell でやる場合はどうするか、 Maybe とかモナドとかいろいろ調べて mplus を使えば行けるのか、とかいろいろやってみた末の結論は、

flip fromMaybe で万全

ということでした(むろん、遅延評価言語なので foo が Just なら bar は評価されないし)。

(??) :: Maybe a -> a -> a
(??) = flip fromMaybe
infixr 9 ??

Maybe をモナドとして考えて >>= を使うとなると、「Just のあいだはどんどん評価していくけど途中で Nothing になったら評価はしないで最終的に値が Nothing」ということなので意味が逆なのですね。それでいろいろ考えてしまったよ。