Clojure

Incanterを今からはじめるなら

IncanterはLISP+R on JVMという理想環境 Incanterは「Clojureで動くRっぽい雰囲気の統計環境」とのことで、けっこう期待しているんですが、このところ表立った動きが見えてこないので寂しいです。JVM上でLISPを使って統計ができるのだから最強だと思うんだけ…

LISPで統計、のIncanter

LISPを真剣にやりたいと思いつつも、実務にすぐ使えなさそうなのと、他の人が使うものとの互換性とかも考慮すると、本格的に使い始めるのに二の足を踏んでしまいます(キーボード配列をQWERTYからDVORAKに変えるときと同じかんじ)。音響プログラミングと統…

スチューデントのt分布を計算してみた

Clojureの勉強を兼ねて統計プログラムをちまちまと作っていますが、t分布の計算ができるようになりました。積分が入っているガンマ関数*1がネックだったんですが、Wikipedia先生に近似法を教えてもらって一件落着。 ;; Gamma Function (using Stirling's app…

関数の定義

まずマニュアルを読まずにCommon LispやSchemeのようにdefunやdefineを試してみましたが、ダメ。しょうがないのでマニュアルを読むと、defnだとか。 (defn times2 [x] (* x 2)) ひっかかりそうなのが引数指定の部分。引数はvectorとして与えてやる必要があり…

たらいまわし関数

竹内郁雄氏のたらい回し関数をClojureで書いてみました。とは言っても、ClojureもLISPファミリーの一員なので、定義を単純に式に置き換えるだけ。めんどくさいことは皆無です。中で何をしているかが知りたいので、複数の関数を逐次実行させるためのdo命令*1…

Clojureの基本型

変数型はアトム(スカラ)とコレクション(ベクトル)に分類されますが、型は動的に決定されます。 アトム 数値 user=> 42 42 ブール型 user=> true true user=> false false 文字列 user=> "Hello, world!" "Hello, world!" シンボル 「名前」を表すために…

Clojure

このところErlangを勉強していましたが、最近はClojureが気になっています。並行処理が可能で、Java仮想マシン上で動く上に、Lispの方言であるということで、かなり僕のツボにはまっています。Java仮想マシンの制約を受けるのがちょっと問題ですが、.Net版も…