こっちに引っ越してきました。
pepsi.htmlを読んでいます。表題の通りなんですね。Smalltalk/80と似た言語ということで頭っからクラスベースと思い込んでいました。
むちゃくちゃな例ですが、こんなことができます。
{ import: st80 } Wao : Object () Wao wao [ 'wao' println ] [ Wao wao. ] Wap := [ Wao new ] Wao wap [ 'wap' println ] [ Wap wao. ]
WaoはObjectを継承するプロトタイプオブジェクトです。Objectを継承する理由は、途中でnewメソッドを使っているからです。これはただの宣言のように見えますが実際Waoオブジェクトを作成したことになります。
その次の行でWaoにメソッドwaoを追加しています。これは画面にwaoと表示します。
トップレベルにある大カッコで囲まれたのはブロックで、ファイルの頭の方のものから実行されます。最初のものは定義したWaoにいきなりwaoメッセージを送ります。
WapはTranslation Unit変数(変換単位変数?グローバル変数のようなもの)で、プロトタイプWaoのコピーが格納されます。
次のはWaoオブジェクトにwapメソッドを追加しています。
最後のブロックはWapにwaoを送ったり、後から追加したwapをWaoに送ったりしています。
出力は以下のようになります。
'wao' 'wao' 'wap' 'wap'
st80ライブラリやjoltのソースを見るとかなりいろんなことがわかります。