なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

Clojure

Clojure小ネタ

Clojure小ネタ Clojureのテストはrepl.itというサイトでWEB上で試せる repl.it - Online REPL, Compiler & IDE ハッシュマップの型 {:key "value"} のような形のハッシュマップは、内部ではPersistentHashMapやPersistentArrayMap, PersistentTreeMapのよう…

ClojureでJavaの無名クラス実装

nantonaku-shiawase.hatenablog.com以前JavaのApache POIでCellWalkContextの実装を作ったのだが、これをClojureでやる場合はproxyを使うのがよい。 Java実装 CellWalk cw = new CellWalk(sheet, range); cw.traverse(new CellHandler() { @Override public …

Instaparseでパーサジェネレータ

Instaparseの位置づけ InstaparseはClojure言語による パーサジェネレータ - Wikipedia であるgithub.comこれのルール記述はBNFの拡張であるEBNFが使われている。 EBNFで構造化言語のルールを記述する さっそくだが、「<p>sample</p>」を読み取るBNFのル…

ClojureとREPL駆動開発

REPL駆動開発 またClojureです。REPL使ってやりたいことが即座にできなかったので、やり方をまとめました。 REPLを自分のプロジェクトの名前空間で起動 clojure - How to Run Code Using Leiningen? - Stack Overflow user> (in-ns 'myproject.core) 名前空…

Monger + mLab + ClojureでMongoDBに触る

MongoDBはいわゆるNoSQLで、きっちり行と列を定めなければいけないRDBと違い、JSONをそのままぶっこめる。 今趣味で触っているプログラムに使おうと思い、Mongerをクライアントライブラリとして使用してみた。 準備編 Monger ClojureのMongoDBクライアント側…

leiningenで作るuberjarがmavenでできたらいいと思ったら出来なかった話

Leiningenでuberjarを作る Clojureの日本語ガイドにあるように -> Part7: どのようにして Heroku へデプロイするか Leiningenから lein uberjar と打てばいわゆるFAT Jarができる。これは依存ライブラリを全て含んでいるのでJavaさえあれば実行できる。 Mave…

HickoryでHTMLをS式化

HiccupでHTMLをテンプレートとして扱いたいのだが、元ネタのHTMLが素のHTMLの場合、どうやってS式にするか?Stackoverflowに聞いてみそ stackoverflow.com 推しアンサー Github Wikiに方法がいっぱいあるやん clojure - Is there a parser for html to hiccu…

Clojureを使ってみる

たまたまClojureを触ってみて、なんだか良さそうだと感じたのでいろいろ書き散らしている。 環境構築が比較的容易で、WEBアプリが作りやすそうなのがよかった。あとScalaほど四角四面ではなく、Groovyほど壊れにくい*1 環境構築 yoppi.hatenablog.comまずこ…