2008-12-31から1日間の記事一覧
こんなに簡単にいっていいのだろうか。 コンパイルフェーズをどう入れ込むかで頭がパンクしそうだが、なんだか一発で動いたっぽい。こんなんでいいのか。 jiji> (def z 1000) 1000 jiji> (def mc1 (mc (x) (list + x z))) jiji> (mc1 10) 1010 今度はsicpのa…
古典的マクロってどうやって実装するのか。 コンパイラフェーズで評価すればいいのかなぁ。 その際の環境をどうするべきかとか、ちょっと考えないとなぁ。末尾再帰最適化もやりたい。Lisp in small peacesとかいう本がどっかに転がっているはずなんだけれど、…
使ってみて不便だったら直す方向で。。 function js_new (fn, arg) { var ins={}; ins.__proto__=fn.prototype; var ret=fn.apply(ins, arg); if (ret instanceof Object) { return ret; } return ins; }
javascriptのnew演算子をwrapするところで詰まっている。 new TestObj(arg1, arg2) というのをメタプログラムしたいのだが、関数呼び出しの場合であればFunctionオブジェクトにapplyメソッドが用意されているので、簡単なのだけれど、new演算子の場合は、い…