2011-05-01から1ヶ月間の記事一覧
◆tree-seq をちゃんと理解したい 理解していなかったのでいろいろやってみた。 (defn tree-seq "Returns a lazy sequence of the nodes in a tree, via a depth-first walk. branch? must be a fn of one arg that returns true if passed a node that can h…
一見単純だけど色々お世話になってる便利な関数 partition。4引数で呼び出せるのをしらなかった。 (def a [1 2 3 4 5 6 7 8 9 10 11]) ;; 2引数 (partition 4 a) ;=> ((1 2 3 4) (5 6 7 8)) ;; 3引数 (partition 4 3 a) ;=> ((1 2 3 4) (4 5 6 7) (7 8 9 1…
古い記事ですが、ちょっと面白い問題なのでやってみた。=> 連番リストの歯抜け ■(partition 2 1) って便利 (defn pick-toothless [coll] (->> coll (partition 2 1) (remove #(= -1 (apply - %))) (mapcat (fn [[a b]] (range (inc a) b)))))(pick-toothless…
以前実験的に作りましたが、あれから色々コードの書きかたを憶えたので、もうすこしちゃんと書いてみました。アドバイスなどありましたら是非。 ■棒読みちゃんクライアントプログラム (ns bouyomi-client.core (:gen-class)) (defmacro create-ctor "デフォ…
以下、試行錯誤した内容を順を追って書く。 急いで結論が見たい人は、ここへジャンプしてください。 ■整数をバイト列(シーケンス)へ変換 これはそれ程難しくない。方法はいろいろあると思いますがここでは末尾再帰で。 (defn byte-split [n] (loop [n n, col…
2011年5月現在、最新Release版である clojure 1.2 を前提にしています。 ■マップの種類 Clojureのマップは三種類あります。repl等での表示は同じに見えますが型はそれぞれ違います。 (array-map :a 10 :b 20 :c 30) ;=> {:a 10, :b 20, :c 30} (hash-map :a …
ここ数日、Ubuntuの起動時にHDDがカコンカコンと何度も音をたて、画面にはエラーらしきメッセージが出続けるという、心臓に悪い現象が頻発していました。 それでも、暫く放置しているとOSはちゃんと起動するのでそのままにしていたのですが、いいかげんヤバ…