2008-01-17から1日間の記事一覧

の実行時コンテキスト

print = ^do puts: name; end; this.name = "みけ"; tama = { name = "たま"; }; print; // -> みけ tama print; // -> たま tama print@{ name = "くろ"; }; // -> くろ tama print@{ name = "くろ"; }|name = "こま"; // -> こまちょっと複雑。

キーワード引数

というより、それ以上の機能。 text = "あいうえお"; print = ^do puts: text; end; print; // -> あいうえお print|text = "かきくけこ"; // -> かきくけこ

Hello world!

なんとこれで Hello world! print = ^do puts: this; end; print@"Hello world!";

素数の列挙

とりあえずリストとかぜんぜん整備してないんで純朴に fun is_prime:num do if 2 < num then for m in [2..num-1] if num % m == 0 then return false; return true; end for num in [2..100] if (is_prime:num) then put: num + ", "; puts;実行結果 2, 3, …

脅威の Double Inheritance

こんなことができます。super と parent の2個のスロットがありまして、スロット検索は this, super, parent の順に行われます。 neko = {}; puts: neko.name; // -> void this.name = "みけ"; puts: neko.name; // -> みけ neko.parent = { name = "こま";…

repeat 文を

入れようかな。入れなくても良いかな? repeat 10 do puts: "Hello world"; endそれとも int オブジェクトのメソッドで入れようかな。ruby みたいに。 10 repeat: ^do puts: "Hello world"; end;