エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Clojureのprotocolで型クラス的な多態な関数を作る | rb.blog.pasberth.com
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Clojureのprotocolで型クラス的な多態な関数を作る | rb.blog.pasberth.com
Clojure の protocol でモナドを定義したい!! そう思ったけれど、 protocol の仕組み上 return の定義... Clojure の protocol でモナドを定義したい!! そう思ったけれど、 protocol の仕組み上 return の定義がけっこう難しいのである。 なぜかというと protocol という仕組みは第一引数に依る分岐なので、型クラスのように型に依る分岐ではないからである しかしこれをいい感じに解決する構造を考えた。 まず、 MonadUnit と MonadBind 、 そしてそれらを対応するデータ型に変換する monad-context 関数を持つ Monad protocol を定義する。 たとえば (maybe-context (MonadUnit. 1)) などとすると (Just. 1) が返されるわけである それから、 return a は単に (MonadUnit. a) とする。 そして m >>= k は、もし m が具体的なデータ(つまり、MonadUnit