2011-12-01から1ヶ月間の記事一覧

Clojureにヒアドキュメント的な機能を追加しつつ、compojureでコードを埋め込んでsyntax highlightを効かせる

タイトルが長い。compojure(clojureでsinatra likeなことができる)でwebサイトを作っていたが、RubyやらClojureやらのコードを埋め込みたい。要ははてなのsuperpre記法っぽいものが欲しかったのである。clojureに標準でヒアドキュメント的なことはできないが…

rsyncの使いどころについて

プログラムのファイルとかだったらgitのpush&pullでどうにかなるし、データだったらscpとかでよくね?と思っていたが、結構容量を食うようなデータについてscpをしていると死ぬから差分だけ更新したいみたいなことがある。そういうときはrsyncが結構便利そう…

lsとかをMB単位やGB単位で出す

0が大量に並ばれても僕にはよく分からないので単位変換して出してくれるとうれしい。特にファイル置きすぎてMBなのかGBなのかも分からなくなったようなディレクトリだと。lsの場合オプションにhを付けるだけで、BMだったりGBだったりを付けてくれる。便利。 …

ネストしたvector or hashmap

機械学習とかで隠れ変数を扱っているときに、「隠れ変数zに割り当てたサンプルの数を保存しておきたい」みたいな要望に答えるにはvectorやhashmapを使うのが上等手段だと思うが、隠れ変数が2段、3段となっていくとそれらの構造もネストしていってしまうわけ…

Clojureではまること

関数の引数やletの中で"vec"とかっていう変数を使った後で戻り値を返すときに関数としての"vec"を使ったりするとエラーが意味分かない感じになってしまうので無駄に解読に時間がかかってしまった(例えば"Key must be integer"とかと言われる)。かれこれ3回目…

transientとpersistentについて

Clojureの1.1から使えるようになった機能。Clojureの公式サイトから引用すると If a tree falls in the woods, does it make a sound? If a pure function mutates some local data in order to produce an immutable return value, is that ok? Clojure - T…

Clojureにおける関数の部分適用について

取る引数が複数あって、どれかだけ固定して残りはまだ引数になってる(説明の仕方が悪い)ようなときにはpartial関数が便利。"+"とか"*"のような順序を交換しても結果が変わらないような関数に関してはpartialはとても便利なのだが、"-"とか"/"とかはどっちを…

atomの配列と配列のatom

Clojureは基本的にmutableなものを許さない設計になっているので、do-syncなどのトランザクションの中でrefを変更するコストは結構高い(はず)。ドランザクションではないけど、atomの場合でちょっと実験してみる。atomの配列と配列のatomを用意。要素をラン…

threading macros便利

clojureを書いていると(reduce f4 (filter f3 (map f2 (map f1 lis))))みたいなのがネストしまくって、ソースが横に長くなるときがある(というかよくよくある)。clojureにはそういうのを解決してくれるマクロがいてそれは"->"と"->>"。名前はthread-first ma…

UTF-8-MAC問題を解決する

Mac

大分前から使っている白MacBookのHDD容量が最近足りなくなってきていて、走らせてたプログラムが容量足りずに途中で死んだり、Emacsのバッファが保存できないレベルまできていたので、データを退避させることに。Ubuntuのサーバーに取り敢えず置いておくこと…

Clojure + swank + slimeでのプログラミングの感覚はR on ESSに似ている

最近でこそ使わなくなったものの、自分にとってRは母国語(第一言語?)みたいなもので結構影響を与えている。Rの言語として好きなところ(例えばapplyで行毎にばさっと関数適用してplotしてデータの様子をさくっと眺めるとか)もあるが、データ解析言語としてのR…

Clojure始めます

NLPの下のレイヤー(segmentationやparsing)で公開されているプログラムはC++やJavaであることが多い。XXXの(Ruby|Python|Perl) bindingみたいなのが用意されていることもあるが、そうでないものも多い。あるいはbindingには公開されてない情報も使いたいとか…

On Lispを読み返す

最近Clojureに手を出してみようかなぁと思っているので、On Lispを読み返してみた。On Lisp作者: ポールグレアム,野田開,Paul Graham出版社/メーカー: オーム社発売日: 2007/03メディア: 単行本購入: 10人 クリック: 146回この商品を含むブログ (128件) を見…