2007-06-20から1日間の記事一覧

filterA

できた!けどめちゃくちゃだ。その場しのぎ的な感じがぷんぷんするぜー。 filterA p = arr listcase >>> arr (const []) ||| ((?x -> if p x then Left x else Right ()) *** filterA p >>> arr (uncurry cons)) cons (Left x) l = x:l cons (Right _) l = l…

mapA

Arrow での map 関数。 mapA f = arr listcase >>> arr (const []) ||| (f *** mapA f >>> arr (uncurry (:))) んぐ。気持ち悪い。常識が覆されております。map がでてきたら当然 filter も書くでしょ!とかいって適当に書いてたけど、いっこうにうまくいく…

常日頃から時間軸が違うような気がしていた

OCaml-Nagoyaな先輩の id:yoshihiro503 さんがはてダで 定理証明系Coqを使った証明をゴリゴリ書き始めたもよう。 未来日記で。 って日記を書くのが流行ってるらしいので便乗してみた。

8-QUEEN

まぁ8に限らないんですが、コンパイル時に数字が決めうちなのが悲しいです。 それと、何も考えずに実装しているので(たぶん)効率が悪いです。 import Control.Monad.State import Data.List type Coord = (Int, Int) type Queens = [Coord] -- solver num = …