2010-04-01から1ヶ月間の記事一覧

Paradigms of AI Programming Source Code

http://norvig.com/paip/README.html勉強ネタ。

Fluid Dynamics

http://www.bestinclass.dk/index.php/2010/03/functional-fluid-dynamics-in-clojure/要熟読。

fizzbuzz returns

http://vimeo.com/11088005 より。素敵なfizzbuzz。 (defn fizz [n] (if (zero? (mod n 3)) "fizz")) (defn buzz [n] (if (zero? (mod n 5)) "buzz")) (def fb-list [fizz buzz]) (defn fizzbuzz [n] (let [fb (apply str ((apply juxt fb-list) n))] (if (e…

形式手法によるプログラム解析第2回

http://www.edubase.jp/contents/view/50#JMLを使用した解析だそうな。 帰宅したら視聴する。

Clojure 1.2 Protocols

http://vimeo.com/11236603帰ったら視聴する。

Clojure contrib 1.2.0 SNAPSHOT

テストが通りませんね。 FAIL in (test-as-url) (run-test8216378348289441833.clj:44) expected: (= (URL. "file:/foo") (as-url (File. "/foo"))) actual: (not (= #<URL file:/foo> #<URL file:/D:/foo>)) FAIL in (test-relative-path-string) (run-test8216378348289441833.clj:44) absol</url></url>…

cat

Clojureをシェル化しようと画策。 (use '[clojure.contrib.duck-streams]) (defn cat [filename] (doseq [[s] (map vector (read-lines (reader filename)))] (println s))) と思ったら「slurpを使え」というコメントをいただいた。 (defn cat [filename] (p…

Whyインストールメモ

Coq

Whyツールの習得について( http://groups.google.co.jp/group/fm-forum/browse_thread/thread/6fbd1bc05aa8f999) ということで、 私もやってみた。Whyというのはプログラムの検証用ツールなのだが、 プログラムコードにアサーションのように挿入したWhyのコ…

flatten

実装のバリエーションとして、メモ。 http://groups.google.com/group/clojure/browse_thread/thread/4072804251bbad81/15268e2a22418b8e?lnk=gst&q=flatten#15268e2a22418b8e (defn flatten [lst] (lazy-seq (if (empty? lst) lst (let [[x & xs] lst] (if …

180度回転

講師をやっていると、メイン講師(教室前方)とサブ講師(教室後方) の2つの座席表が欲しくなる。 (defn room-rotate [coll] (reverse (for [x coll] (reverse x)))) こんなやり方しか思いつかなかった。

CommonLisp対訳rev

http://userweb.cs.utexas.edu/users/moore/publications/tutorial/rev3.html#slide0 を見て。Common Lisp (defun rev (x) (if (endp x) nil (append (rev (cdr x)) (list (car x))))) Clojure (defn rev [x] (if (empty? x) nil (concat (rev (rest x)) (li…

extendsとinの違い

私も最初、訳がわからなかった。 UMLにはこれの直接表現がないし。 /* * Example : extends vs in * *author: Kenichi Kobayashi */ abstract sig Human {} sig Man,Woman extends Human {} abstract sig Employee {} sig Sales,Engineer in Employee{} /* …

第4回Formal Methods 勉強会

http://atnd.org/events/4110第4回はAlloy,Coqに加えて、理論面でCEGARのお話も入る。 技術的に高度だからといって、 決して一見さんお断りにはならないのでご安心を。

Multi-core Parallelization in Clojure – a Case Study.

Johann M. Kraus,Hans A. Kestler k-means法をClojureで実装して、実際にクラスタ上で実験したらしい。

ナベアツ

アルゴリズムの記事を見てコーディング。 http://www.atmarkit.co.jp/fcoding/articles/algorithm/01/algorithm01b.html (defn henkan [num] "さーん") (defn nabe [num] (cond (= (mod num 3) 0) (henkan num) (> (.indexOf (str num) "3") -1) (henkan num…

compile

コンパイルするにはCLASSPATHにsrcとclassesが必要なんて知らなかったよー。 C:\clojure>java -cp d:\usr\clojure\clojure-1.1.0.jar;.\src;.\classes clojure.main Clojure 1.1.0 user=> (compile 'clojure.examples.instance) clojure.examples.instance u…

Hanoi

ACL2のサンプルを思わずベタ書き。 http://userweb.cs.utexas.edu/users/moore/acl2/v3-6/TUTORIAL1-TOWERS-OF-HANOI.html (defn move [a b] ['move a 'to b]) (defn hanoi [a b c n] (if (< n 1) nil (if (= n 1) (list (move a c)) (concat (hanoi a c b (…

Twitter4jでupdate

(import '(twitter4j Status)) (defn update [twitter text] (do (def status (. twitter updateStatus text)) (println "Successfully updated the status to [" (. status getText) "]."))) 昨日のget-twitterと組み合わせて使う。 なんと、ありえないくら…

Twitter4j

http://twitter4j.org/ja/index.html のexampleから、GetDirectMessages.javaのベタ移植。 (import '(twitter4j DirectMessage)) (import '(twitter4j Twitter)) (import '(twitter4j TwitterException)) (import '(twitter4j TwitterFactory)) (defn get-tw…