タグ fumieval
人気順 10 users 50 users 100 users 500 users 1000 users畳み込みの視点から見たforallとexists: 空集合に対するforallは常にtrueになる - Lambdaカクテル
こういうツイートが話題になっていた。 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すかが、良いプログラマかどうかの一つの境目だ— ふみ a.k.a.DJ Monad (@fumieval) 2023年5月29日 つまりScalaで言うと次のようなコードが何になるか、というもの... 続きを読む
ContT を使ってコードを綺麗にしよう!
はじめに Continuation (継続) について全く勉強したことが無いので Control.Monad.Cont で定義されている ContT とかいつ使うんだろうなーと思っていましたが、ついに利用機会がありました!!! 僕が考えたんじゃなくて fumieval さんに相談して、教えてもらったんですけどね。 問題のコード Yesod の Handler ではパ... 続きを読む
Freeモナド in Scala - ( ꒪⌓꒪) ゆるよろ日記
2012-11-16 Freeモナド in Scala scalaz scala 関数型言語 haskell 噂のFreeモナドをScalaで写経してみた。 Freeモナドは、取り込む型SのFunctorと組み合わせて、Functorの特性に応じたモナドを得ることができるものらしい。 そろそろFreeモナドに関して一言いっとくか - fumievalの日記 Freeモナドって何なのさっ!? - c... 続きを読む
そろそろFreeモナドに関して一言いっとくか - fumievalの日記
Freeモナドはすごい。 Haskellを書いていて、「特殊化された処理を記述するモナドが簡単に作れたら便利だろうなー」と思ったことはないだろうか?簡単に作れるのである、そう、Haskellならね。 これが、純粋なFreeモナドの定義である。 data Free f a = Pure a | Free (f (Free f a)) instance Functor f => Monad (Free... 続きを読む