今日のDBCLS
Rでの立ち回り紹介
seekR - 統計分析ソフトウェア R のための検索エンジンを紹介
あとは吹き出し抽出を中途半端に放置してたのを完成させた。
HukidashiExtractorフォルダ内のbatファイルにcamprojファイルをドラッグしてください。
昨日のDBCLS
Rでの立ち回り紹介
動画作成中
??hogehoge ?hoge hoge #関数のソースを表示 example(hoge)
を紹介する部分を作成。
次はhttp://www.okada.jp.org/RWiki/・seekR - 統計分析ソフトウェア R のための検索エンジン・(Rで)マイクロアレイデータ解析を紹介する部分を作成する予定。
RStudio
Open source and enterprise-ready professional software for data science - RStudioの方がRの元から付いてるGUI環境より使いやすいので、もう一つRの動画を作るならこれの紹介+αにしたい。
RでSleep Sort
本当はSys.sleepを使いたいのだがforkの中で使うと動かない。
# install.packages("fork") require("fork") sleep <- function(t) { Map(sqrt, 1:(100000 * t)) } Map(wait, Map(function(x) { fork(function() { sleep(x) cat(x) }) }, c(9,3,7,1,2,6,4,5,8))) # 出力:123456789
Clojureのベクタのメモリ使用量
(vector-of :int)を使えば普通の配列を使った場合の1.35倍、普通のベクタとIntegerを使った場合は7.32倍くらいになる。まぁ全然OKですね。
(defn current-total-memory-usage [] (System/gc) (- (.. Runtime getRuntime totalMemory) (.. Runtime getRuntime freeMemory))) (defmacro memory-usage [& exprs] `(let [pre# (current-total-memory-usage)] ~@exprs (- (current-total-memory-usage) pre#))) user> (memory-usage (def v (int-array 1000000))) 4000040 user> (def v nil) #'user/v user> (memory-usage (def v (into [] (range 1000000)))) 29274744 user> (def v nil) #'user/v user> (memory-usage (def v (into (vector-of :int) (range 1000000)))) 5419552
Clojureのシンボル比較
シンボル比較は何よりも速いと期待していると裏切られる。Clojureではシンボルにメタデータをつけられるので等値なシンボルが等価でない。ただキーワードならちゃんと等価になる。
user> (time (dotimes [_ 1000000] (= 'a 'a))) "Elapsed time: 53.835 msecs" nil user> (time (dotimes [_ 1000000] (= :a :a))) "Elapsed time: 5.093 msecs" nil user> (identical? 'a 'a) false user> (identical? :a :a) true
Lisp関連書籍
おすすめ
http://mitpress.mit.edu/sicp/full-text/book/book.html
On Lisp
Common Lisp the Language, 2nd Edition
Code for Paradigms of Artificial Intelligence Programming
(4/24 17:35追記)http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=3925*1
まあまあ
Land of Lisp
Practical Common Lisp
Programming Clojure by Stuart Halloway | The Pragmatic Bookshelf
Let Over Lambda
ANSI Common Lisp
上のリスト中でWebで読めないLispの本は学科の控え室に置いた。