Clojure

添削について確認してみた

([obj methodname & methodnames] `(concat (obj-values ~obj ~methodname) (obj-values ~obj ~@methodnames))) この場合、obj が複数回評価されうるのでよろしくないと思います。 `(let [obj# ~obj] (concat (obj-values obj# ~methodname) (obj-values obj…

Javaオブジェクトに対して指定のメソッド名に対する値を取ってリストで返すClojureのマクロを作った

いやbeanを使えばいいという話もあるのですが、ちょっと必要に迫られて作りました。 (defmacro obj-values "Takes a Java object and method names, returns a list of method values." ([obj] '[]) ([obj methodname] `[(. ~obj ~methodname)]) ([obj metho…

おっちょこちょい?なScalaソースを添削してClojureに書き換えてみた

If you have to learn just one programming language - Babu Srinivasan's blogを見ていたが、最後に出てきたScalaのソースがダメなJavaソースそっくりなことにがっかり。 はてブには「Scalaサンプルがひどい。for文の中を、moneyを引数にして新しいmoneyを…