2011年12月1日木曜日

CoffeeScriptでHQ9F+のインタプリタ書いた。



Esoteric Language - ネットワーク?なにそれおいしいの?


を見て書こうとおもったので、書いた!



インスタンス変数のデフォルト引数でハマりそうなところ



out = (x) -> console.log x
class Foo
constructor: (@out = out) ->


このようなCoffeeScriptは



var Foo, out;

out = function(x) {
return console.log(x);
};

Foo = (function() {

function Foo(out) {
this.out = out != null ? out : out;
}

return Foo;

})();


このようにコンパイルされる。


デフォルト引数の値に、インスタンス変数と同じ名前の変数を渡すと、インスタンス変数の方で隠されてしまうので注意。





0 件のコメント:

コメントを投稿