kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

2009-09-25から1日間の記事一覧

Scalaで値を返せるbreak

Scalaでbreakの応用で、ブロックからbreakするときに値を返せるようなものも実現できる。基本的な発想は同じだが、例外のコンストラクタパラメタとして、返すべき値を持たせるところと、ブロックが任意の型を取れるようにパラメタライズされていることが異な…

Scalaでbreak

なんかタイムラインで @yamashiro むしろなかったら作れそうな雰囲気ですよ! 知人のScalaエヴァンジェリスト @kmizu に「何でbreakないの?」と聞いたら「邪道だから」といなされた上で「こうやれば実装できる」と言われましたよw http://twitter.com/_tad_/s…

ScalaでContinuationモナド

Scalaのfor-comprehensionについて、これは単なる拡張for文みたいに機能が限定されたものではなく、モナドを使ったプログラムを簡潔に書ける汎用の構文だよーみたいな説明がよくなされる/したことがある。だが、じゃあ、実際にScalaでforで使えるモナドっぽ…

ScalaでContinuationモナド(改良版)

ScalaでContinuationモナドは、どうにもあまり美しくなかったので、もっとScalaらしく改良してみた。重要な点は、二引数の型コンストラクタCont[R, A]をContinuations[R]の内部クラスContinuation[A]として表現し、flatMap,mapなどはContinuation[A]のメソッ…