2014-03-01から1ヶ月間の記事一覧

Haskell 小ネタ: 中置

最近同期とした話。 Haskell では任意の関数をバッククォート(`)で囲むことで中置の演算子にできる。例えば、 div 6 2 は、 6 `div` 2 のように書ける。 では、引数が3個以上あったらどうなるだろうか? 例えば、 foldr (+) 0 [1,2] はどのように書けるのだ…

寿司以外のものを回せないのか

回転する外食というと寿司くらいしかないが、他のものは回せないのだろうか。例えばマクドナルドとか。 回転寿司の特徴というと、 一品目が小さい メニューが多い 次々食べる といった、多品目・大量消費が中心で、個別の注文に答えると面倒だけど、適当なも…

実用のための身も蓋もない shift/reset

まず、answer type modification のことは忘れてください。次に実行モデルを思い浮かべて monad を作りましょう。unit と bind が必要です。(3/12追記: monad 則にも注意しましょう)最後に reflect = λm. shift (λk. bind (m, k)) reify = reset . unit とい…