タグ

ProgrammingとMaybeに関するItisangoのブックマーク (3)

  • Java の語彙で Maybe を説明してみる - ぐるぐる~

    java-jaで例外処理の話をしてきました - 西尾泰和のはてなダイアリー を読んで。 Maybe は値があるかないかを型で表すことができます!そう、直和型なんです!とか言われてもイミフだと思うのです(リンク先のエントリがそう説明してるわけではないですが)。 Java の語彙で Maybe の説明をできたら嬉しい人もいるんじゃないかなぁ、とかなんとか。 ただし、書いてたら結構長くなりました。時間がある人はどうぞ。 Maybe? null より安全に「値がないこと」が扱えるものだよ スタート地点としてはこれでいいでしょう。 以降で、「なんで安全なの?」という全うな疑問に答えてみたいと思います。 問題点 int で説明すると煙に巻いてしまうような気がしたので、User クラスを見てみます。 import java.util.*; class User { final String name;

    Java の語彙で Maybe を説明してみる - ぐるぐる~
  • Maybe のエントリの補足 - ぐるぐる~

    昨日書いた Java の語彙で Maybe を説明してみる - ぐるぐる〜 に予想以上の反響があってびっくりです。 色々反応もらったので、ちょっと補足を。上のエントリを読んでない人は読んでからどうぞ。 @CheckForNull でいいのでは? はい、確かに FindBugs の CheckForNull アノテーションは便利です。 でも、これが提供してくれるのは null チェックの強制です。 先のエントリは、「null より安全な Maybe」という説明でした。 ですので、それだけを達成するのであれば CheckForNull アノテーションでもいい*1のですが、後半でちょっと見たように「null より便利な Maybe」という側面もあります。 先のエントリでは bind と or だけ追加しましたが、他にも色々と追加してみましょう。 // Java8だよ! package maybe

    Maybe のエントリの補足 - ぐるぐる~
  • F#プログラマのためのMaybeモナド入門 - みずぴー日記

    http://twitpic.com/3w34bo はじめに モナドといえばHaskell、Haskellといえばモナドが有名ですが、モナドは特定の言語とは無関係の仕組みですので、F#でも使えます。ただ単に使えるだけでなくコンピュテーション式というモナドをより便利に使うための文法まで用意されています。 この記事では、option型を便利に扱うためのMaybeモナドを例にモナドのすごさを紹介していきます。 Maybeモナドのすごいとこ option型っていいですよね。ぬるぽので落ちる心配もないですし。Maybeモナドはそんなoption型を便利に扱うためのモナドです。 option型を扱うのにMaybeモナドと呼ばれてるのは、Haskell由来だからで特に重要な理由はありません。 DBからの値取得とかHttpリクエストからのパラメータ取得などの外部とやりとりする関数は必ず成功するとか限らない

    F#プログラマのためのMaybeモナド入門 - みずぴー日記
  • 1