2010/06/24

syntax-rules: across (Clojure の .. ぽいもの)

プログラミングClojure P.62~ 「Clojure から Java を使う」より。
(.getLocation (.getCodeSource (.getProtectionDomain (.getClass '(1 2)))))

(.. '(1 2) getClass getProtectionDomain getCodeSource getLocation)
と書けますよーということのようです。

Java だと
'(1 2).getClass().getProtectionDomain().getCodeSourse().getLocation();
みたいなイメージで良いんでしょうかね。


scheme (gauche) の syntax-rules で書くと下記のような感じでしょうか。
良い名前が思いつきませんでした。当初は chain にしてましたが、なんとなく across に変えました。。

書いてみたコードは以下のようなもの。


追記

本家ソースはこれかな。

追記2

コメント欄で教えていただきました!名前が良いなぁ。
let1 要らないですね。。

プログラミングClojure

2 件のコメント:

  1. 見覚えがあると思って探したらこういう記事がありました。
    http://d.hatena.ne.jp/mtakuya/2009082/p1
    名前は -> と付けてますね。

    返信削除
  2. 名前が良くてカッコイイですね!

    返信削除