タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

javaとmonadに関するtarchanのブックマーク (3)

  • Javaで継続モナド - terazzoの日記

    実践Scala読んでたら継続モナドのこと理解出来そうな気がして来たので実装してみた。Javaで。 やれそうな気がする時は、やれる! この辺がとても参考になった。 Haskellの継続モナド(Continuation Monad)を理解するポイント - よくわかりません howm wiki - モナド 簡単な説明 上のサイトにある説明、 継続といいつつ、Contが表すのは継続というより、CPSな関数。 これでようやく何をする機能なのか分かった。モナドというのは、基的に何かを包んで、それによって合成したり後から利用したりを可能にするものなんだけど、継続モナドの場合、包まれている「何か」は、CPS(継続渡し形式)で書かれた関数ということだ。 いきなり高度なサンプルしか無いのが分かりにくい点だと思うので、簡単な具体例を使いながら実装を考えていくよ。 継続渡し形式とは (※前に書いた「内部イテレー

    Javaで継続モナド - terazzoの日記
  • Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena

    ※ 5/29 3:23 追記:なんかモナドになったかも。最下部参照 さて、Java8での拡張をいろいろ見てきたわけですが、ではアプリケーションプログラムでFunctionを受け取るメソッドをがんがん定義するかというとそういうことはあまりなく、フレームワーク的な部分で数個定義する感じになると思います。もちろん数個でも効果はでかいのですが。 また、おそらくStreamを受け取ったり返したりするメソッドを定義することは、めったにないのではないかと思います。 Mapでの拡張も、メソッド内部での処理記述がかわる話で、メソッドの引数や戻り値はMapのまま変わりありません。 Javaでのプログラムの構造というのは、メソッドの引数や戻り値の型がなんであるかで決まると言うことができます。その意味では、lambdaやStreamというのは処理の記述は変わるけどプログラムの構造は変わらないとなります。 けれども

    Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena
    tarchan
    tarchan 2013/11/07
    >Optionalがモナドであるための条件のひとつとして、次のflatMapメソッドのようなシグネチャで、値を別の値に変換してOptionalでくるんで返すメソッドが必要です。
  • Java8のOptionalがモナドになったよ! - きしだのHatena

    Java8にはOptionalクラスが導入されたのですが、5月にエントリを書いた時点ではモナドではありませんでした。 Java8でのプログラムの構造を変えるOptional、ただしモナドではない それが、5月末にどうもソースにモナドに必要なメソッドが追加されたらしいということになって、いつ使えるようになるか待っていたら、いつの間にか使えるようになっていました。 Optional (Java Platform SE 8 b101) こちらからダウンロードできます。 JDK8 Early Access Releases ― Project Kenai 他にもいくつか便利メソッドが追加されたおかげで、このようなコードが書けるようになりました。 String str = "abcd"; Optional.ofNullable(str) .map(st -> st.toUpperCase()) .f

    Java8のOptionalがモナドになったよ! - きしだのHatena
  • 1