trifle

技術メモ(最近は hellorusk.net/blog の方が使うことが多いです)

Monad

OCaml で8クイーンを解く

電車の中で 7つの言語 7つの世界作者: Bruce A. Tate,まつもとゆきひろ,田和勝出版社/メーカー: オーム社発売日: 2011/07/23メディア: 単行本(ソフトカバー)購入: 9人 クリック: 230回この商品を含むブログ (65件) を見る を読んでいて, Prolog で数独や…

Monadic Memoization in Python

関数の再帰呼び出しにおいて値を保持しておくことで計算が高速化されるメモ化という手法が知られています. 例えば以下のようにして80番目のフィボナッチ数が高速に求まります. d = [0 for i in range(100)] def fib(n): if n <= 1: return n if d[n] != 0: r…

Stateモナドでランレングス圧縮

最近Stateモナドを学び始めた. 状態を保持しながら計算を進めたいときに便利のようである. とりあえず, get で状態を取り出し, put で状態を更新し, 最後に return で最終的な値を出すStateモナドを定義(Stateモナドの型は State [保持する状態の型] [最終…