2009-06-01から1ヶ月間の記事一覧

F-algebra と catamorphism を Haskell で理解する(2)

前回の続き。wikipedia の F-algebra のページ http://en.wikipedia.org/wiki/F-algebra 参照。上記ページに F(X) = 1 + X という関手の F-algebra の例で (N,[zero,succ]) が出てくる。Haskell で書くと type N = Int a :: Maybe N -> N a Nothing = 0 a (J…

F-algebra と catamorphism を Haskell で理解する

wikipedia の F-algebra のページ http://en.wikipedia.org/wiki/F-algebra 参照。 上記ページに集合圏から集合圏への関手F として F(X) = 1 + X という例がでてくるが 1 + X は Haskell では Maybe X である。 Maybe の定義 data Maybe a = Nothing | Just …

数独ソルバ

Haskell で数独ソルバを書いてみた。 特徴は ・明示的な再帰は使わず (iterate ...) !! 81 を使った。(81手目に解が求まる) ・探索中のマス目状態を、未確定部分と仮確定部分に分けて持つ。 import List (partition,delete) mark (pos@(i,j),d) cand = (…