言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

ミスター Q との対話

OldChat を使ったテキストベースでの Squeak の操作のサンプルです。

準備

必要な物は SqueakNihongo6.1 と、OldChat.sar http://languagegame.org:8080/propella/88 と、 telnet です。(telnetTelnetMachine open で Squeak 自体にもありますし、windowsコマンドプロンプトmac os X のターミナルでも OKです)。

OldChat start inspect
OldChat new start; inspect

Squeak側 の OldChat サーバを立ち上げる。

telnet localhost 4919

telnet 側は、ホスト名 localhost ポート番号 4919 に接続。以下のような
歓迎メッセージが現れたら準備完了です。

** Welcome to Squeak
** VM: Win32
**  - Squeak3.6 of '6 October 2003' [latest update: #5424]
** Image: SqueakNihongo6.1 [latest update: #0]

以下サンプルです。

> 3 + 4 "単純な足し算です"
7
> self factorial "計算の答えは、self で参照出来ます"
5040
> 4 / 12 "分数を分数のまま扱う事が出来ます"
(1/3)
> ii "ii で現在の値 (self) を詳しく見る事が出来ます。
Fraction: (1/3)
====================
numerator :	1
denominator :	3

Mr.Q
>

最後に表示された Mr.Q とは何でしょうか? これはミスターQ が我々の為に仕事をしてくれた証拠の署名です。OldChat を使う時に便利な履歴の管理やオブジェクトの内容の表示等は Mr.Q を通して行います。Mr.Q が行う仕事はhelp で表示する事が出来ます。

>: help
** Welcome to Squeak
** VM: Win32
**  - Squeak3.6 of '6 October 2003' [latest update: #5424]
** Image: SqueakNihongo6.1 [latest update: #0]
  • -
Useful expression and pseudo variables. help -- This message. exit -- Exit. self -- Current object. ii -- Inspect self. history -- Show history. back -- Back. q -- The agent (me). q at: index -- Get an object in history. q bindings -- Local variables. q stream -- input/output stream. Mr.Q >

help や ii 等、幾つかのメッセージはオブジェクトを指定しなくても動くようになっています。他のメッセージに関しては q bindings のように明示的に Mr.Q を呼び出します。この q という文字を使うと、セッション中にいつでも Mr.Q に仕事を頼む事が出来ます。