2007-06-01から1ヶ月間の記事一覧
コインを減らす払い方 (どう書く?org) いま、あなたの財布の中にはコインがたくさん入っています。これを少しでも減らしたいと思います。支払うべき金額と持っているコインの種類と数を与えられたときに、どのコインを何枚出せばおつりを受け取った後のコイ…
OCaml で手続き的に書いてみる. ハノイの塔hanoi' が実質計算します.型合わせていったらできたけどぐちゃぐちゃになりました. あまり説明する気も,かといって綺麗に書き直す気もおきません.解き方はセオリーどうり 1. n-1個を a から c を使って b に移…
S式ストリームパーサ版を作ろうと思って書いてたら id:mzp が書いてしまったので方向転換. 逆ポーランド計算機 #load "camlp4o.cma" type token = Op of string | Num of int let lexer = Genlex.make_lexer ["+"; "-"; "*"; "/"]let rec parse = parser | […
煮詰まったときの頭の体操. divisors :: Int -> [Int] divisors n = divisor' n 1 where divisor' n m | n >= m * 2 && n `mod` m == 0 = m : divisor' n (m + 1) | n >= m * 2 && n `mod` m /= 0 = divisor' n (m + 1) | n < m * 2 = [] isPerfectNumber :…
今更ですが Emacs22.1 がリリースされました. このバージョンから Mac OS X 正式対応ということでビルドしてみました.とにかく 本家から最新版(22.1系)ダウンロードします.展開してから $ ./configure --enable-carbon-app $ make bootstrap $ sudo make …
prosper は tex でスライドを作るためのスタイルです.Power Point は有料だし,数式打つのが面倒だし,そもそも Power Point が入っているマシンでないとプレゼンができない. Distiller とかで PDF にする方法もあるけどそんなの持ってないし. あと頻繁に…
ここの問題 よりまた一問解いてみる.四則演算のみが使えるS式を解釈して結果を出力するプログラムを書け。入力例:(+ 1 2) => 3 (* (+ 2 3) (- 5 2)) => 15ということで ocamlyacc で書いてみる.(ちょっと大掛かりすぎか?) 入力例は2引数になってるけど,一…
なんか煮詰まったので息抜きに ここの問題 をひとつ解いてみる.しりとり: 1. 文字列のリストの要素全てを使ってしりとりが完結するかを判定 2. 最長のしりとりを出力とりあえずいけるところまでしりとりさせる. OCaml でやろうかと思ったけどバックトラッ…
OCaml-Nagoyaな友達の id:yoshihiro503 さんがはてダで 定理証明系Coqを使った証明をゴリゴリ書き始めたもよう。 未来日記で。
[[1,2,3],[1,2,4],[1,2,5],[1,3,4],[1,3,5],[1,4,5],[2,3,4],[2,3,5], [2,4,5],[3,4,5]]
Functioal Programming IAT "関数型指数 (潜在的な関数型プログラミングの嗜好度) をはかる" だそうです.結果 あなたの関数型指数は 0.179482541761944 です。正が関数型、負が手続き型です。ということで関数型だそうです. これがどれくらいの大きさなの…
前回の改良バージョンを眺めていると組み合わせも簡単に作れることに気付く. takeOne のときに 前半を捨ててしまえばよさそうだ. takeOne' :: [a] -> [(a, [a])] takeOne' [] = [] takeOne' (x:xs) = (x, xs) : takeOne' xscomb :: Int -> [a] -> a comb _…
[[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]なるほど簡単だ.追記: == を使ってるから Eq に属してないといけないんだよね,と話すとI井君がサクっと改良してくれた. 要するに n 番目の要素と,それを取り除いたリストをタプルで持っておけばいいわけです. re…
順列をリストモナドでどう書くのだろう,と,ふと思いたち書いてみた. remove _ [] = [] remove x (y:ys) = if x == y then ys else y : (remove x ys)perm _ [] = [[]] perm 1 l = do x <- l return [x] perm n l = do x <- l xs <- perm (n - 1) (remove …
Ajax 初挑戦.DWRはAjaxアプリを作りたいJava開発者にお勧め の通りに DWR を試す. 上記サイトに詳しいことが書いてあるのでポイントだけ.web.xmlorg.directwebremoting.servlet.DwrServlet を指定して servlet 要素を設定する.dwr.xmlWEB-INF に置く. c…
Cmd-Shift-4 のキャプチャはデスクトップにゴミが増えて面倒.ということでクリップボードに保存する方法.ターミナルで$ screencapture -i -c もしくは cmd-ctrl-shift-4