NewtonScript による実装

NewtonScript による実装


これは NewtonScript による実装例だ。GNUE(鵺)さんにソースコードを書いていただきました。ありがとうございました。

Newton ってのは、もう知らない人もいるかもしれないけど、その昔 Apple が作っていた PDA。ビジネス的には大こけしたけど、今見てもキラリと光る技術がたくさん詰め込まれていた。その OS である NewtonOS で使われていたプログラミング言語が NewtonScript。


で、NewtonScript のコード例。


プロトの定義

// プロトの定義
pApp := {preview: func() begin end};
pDialog := {print: func() begin end};
pButton := {help: func() begin end};

オブジェクト定義

// オブジェクトの定義
app := {_proto: pApp};
dialog := {_proto: pDialog, _parent: app};
button := {_proto: pButton, _parent: dialog};

実行

// 実行
button:help();
button:print();
button:preview();

なるほど~。チェインをたぐることを、継承を使って実現しているわけだ。う~ん、おもしろい!NewtonScirpt は Self の影響を受けているそうなんだけど、Self の Chain of Responsibility の実装と比べると、似ていることがよく分かるよ。