2009-01-01から1年間の記事一覧

Bメソッドを用いた形式仕様記述と検証

1月25日開催。 http://www.topse.or.jp/events/20100125.html

Compojure

Clojureで作られたWebフレームワーク。README通り、コンソール上で動作確認する。 http://github.com/weavejester/compojure/blob/master/README.markdownant deps で、必要なライブラリを全部ダウンロードしてくれるので、 compojure.jarと合わせてCLASSPAT…

Project Euler Problem 4

(defn palindrome? [x] (= (reverse (str x)) (reverse (reverse (str x))))) (defn search [] (filter palindrome? (take 10000 (for [x (reverse (range 100 1000)) y (reverse (range 100 1000))] (* x y)))))

小技

REPL上で(doc キーワード)とすると、キーワードに対応する文書が表示される。user=> (doc reverse) - clojure.core/reverse ([coll]) Returns a seq of the items in coll in reverse order. Not lazy. nilClojureにはインスペクタなるものがある。 (use 'cl…

リンク集

http://onclojure.com/2009/03/05/a-monad-tutorial-for-clojure-programmers-part-1/The Continuation Monad in Clojure http://intensivesystems.net/tutorials/cont_m.htmlhttp://en.wikibooks.org/wiki/Clojure_Programming

JOptionPane

Scala版 javax.swing.JOptionPane.showMessageDialog(null, "Hello Scala") Clojure版 (. javax.swing.JOptionPane (showMessageDialog nil "Hello Clojure"))

ニュートン法

SICPよりニュートン法でのsqrt (defn abs [x] (if (improve [guess x] (average guess (/ x guess))) (defn sqrt-iter [guess x] (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))) (defn sqrt [x] (sqrt-iter 1.0 x))

FizzBuzz

"プログラミングGauche"のそのまま移植 (map (fn [x] (cond (= (rem x 15) 0) 'FizzBuzz (= (rem x 5) 0) 'Buzz (= (rem x 3) 0) 'Fizz :else x)) (range 1 101))

ソフトウェア科学基礎(近代科学社)練習問題1.9

「ソフトウェア科学基礎」http://books.livedoor.com/item/2024302 の練習問題1.9より。 宝石の入ったつづらを当てる問題。Alloyで。/* 「ソフトウェア科学基礎」練習問題1.9 pred showの中で、honesty,liarを変更し、 どちらであっても宝石(Jewel)と繋がる…

↓の文を読み、誰が魚を飼っているかを当てて下さい

http://d.hatena.ne.jp/kmizushima/searchdiary?word=%2a%5b%a5%af%a5%a4%a5%ba%5dというのを見て、Alloyで。/* それぞれ異なる色の、5つの建物が並んでいます。 それらの家にはそれぞれ出身地の異なる家主が住んでいます。 5人全てが、何か飲み物を飲み、…