Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチTomoharu ASAMI
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチTomoharu ASAMI
はじめに Scalazを導入するメリットを書いていきたいと思います。 今回は、モナドの有用性について書きたいと思います。 Scalazお試し REPLでScalazを動かすにはまず次のようなbuild.sbtファイルを作ります。 scalaVersion := "2.11.6" libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.1.1" initialCommands += "import scalaz._, Scalaz._" sbt consoleコマンドによりREPLでScalazが使えます。 モナドって何 モナドってなんだ??? 次の3つの法則(モナド則)を満たしていれば、それはモナドです。 (Monad[F].point(x)) >>= f == f x m >>= Monad[F].point == m (m >
独習 Scalaz これまでいくつのプログラミング言語が羊の衣を着た Lisp に喩えられただろうか? Java は馴染み親しんだ C++ のような文法に GC を持ち込んだ。それまで他にも GC を載せた言語はあったけども、現実的に C++ の代替となりうる言語に GC が載ったことは 1996年には画期的に思われた。やがて時は経ち、人々は自分でメモリ管理をしないことに慣れていった。JavaScript と Ruby の両言語もその第一級関数 (first-class function) やブロック構文を持つことから羊の衣を着た Lisp と呼ばれたことがある。S式の同図像性がマクロに適することから Lisp系の言語はまだ面白いと思う。 近年の言語はもう少し新しい関数型言語から概念を借りるようになってきた。型推論やパターンマッチングは ML にさかのぼることができると思う。時が経てば、人
ふみ a.k.a.DJ Monad @fumieval @xuwei_k はい。transformersのListTはモナドではなく、本来はこの世界から抹消されるべき存在と言っても過言ではないでしょう。 2015-03-27 12:37:30 Kenji Yoshida @xuwei_k @fumieval 色々わかってないんですけど、ここにある wiki.haskell.org/ListT_done_rig… "newtype ListT m a = ListT { runListT :: m (Maybe (a, ListT m a)) }" という形にすればいいんですかね? 2015-03-27 12:52:32
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く