「リファレンス」の編集履歴(バックアップ)一覧に戻る

リファレンス - (2008/07/27 (日) 18:37:24) のソース

**型
- nil
-- ソース中では nil で表現されます。
- SYMBOL
-- シンボルです。英数字と記号で表現します。
- REF
-- シンボルの先頭に '$' をつけたもので、シンボルの内容を現します。
- LIST
-- '(' と ')' で囲まれた任意の型表現です。
- INTEGER
-- 整数です。
- REAL
-- 浮動小数点です。
- STRING
-- " と " で囲まれた文字列です。
- BLOCK
-- '{' と '}' で囲まれたスクリプトです。実行時にはクロージャになります。
- EVAL
-- '[' と ']' で囲まれたスクリプトで、行が実行される際に事前に評価されます。
- OBJECT
-- オブジェクトです。new コマンドと class コマンドによって生成されます。
- EXCEPTION
-- 例外です。throw コマンドによって生成されます。
- CLOSURE
-- BLOCK が実行されるとクロージャになります。クロージャは実行時の環境(ローカル変数、オブジェクト)を保持します。
- FUNC
-- 関数です。fun コマンド、defun コマンドや、method コマンドで生成されます。
- CONTROL
-- return/break/continue/redo/retry により生成されます。

**評価の方法

-スクリプトは、複数の行から構成されます。
-各行は ';' (セミコロン) で終了します。
-スクリプトの各行が順次実行されます。
-各行の評価方法は次のとおりです:
--行内の各、REF(ex. $XXX)、EVAL(ex. [XXX; ...]) を評価します。
--行の先頭のシンボルを調べ、これが関数の場合は、その行の残りをパラメータとして関数を実行します。
--行の先頭がオブジェクトの場合、2番目のシンボルを調べ、オブジェクトのメソッドであれば、3番目以降を引数としてメソッドを実行します。
-すべての関数、制御構造は、上記のとおり関数として実行します。

例:

    if {$i > 10} then: {println "true"};

上記の場合、まず、'if' という関数が存在するかを調べ、この関数に対して {$i > 10} 、then: {println "true"} を引数として渡します。
if 関数は、{$i > 10} を評価し、この結果により then: ブロックを実行します。

    $x foo 1

上記の場合、$x がオブジェクトの場合、$x のメソッドとして 'foo' を調べます。foo が見つかった場合、$x のオブジェクト環境を設定し、foo の引数として 1 を渡し、実行します。


**コマンドリファレンス
組み込みのコマンド(関数)の一覧です。

-false
--nil を返します。toy の場合、nil のみが偽として扱われます。
-true
--true を返します。
-set
--ローカル変数に値を設定します。
-sets
--インスタンス変数に値を設定します。
-defvar
--グローバル変数に値を設定します。
-fun
--名前無しの関数を生成します。
-defun
--名前つきの関数を生成します。
-info
--引数により次の情報を返します。local:ローカル変数、self:インスタンス変数、func:コマンド、class:クラス、global:グローバル変数。
-return
--引数を伴い関数から抜けます。
-break
--while/each から抜けます。引数を指定すると、while/each の戻り値となります。
-continue
--while/each の次のイテレーションを実行します。
-redo
--while/each の現在のイテレーションを再実行します。
-retry
--while/each を最初からやり直します。try コマンドの catch: ブロックで使うと、tryを最初からやり直します。
-new
--オブジェクトを作成します。
-if
--コンディションの真偽により、then:ブロック、else:ブロックのいずれかを実行します。
-while
--コンディションが真の間中、do:ブロックを実行します。
-print
--引数を表示します。改行はしません。
-println
--引数を表示し、改行します。
-time
--ブロックの実行時間を秒で表示します。
-class
--クラスを生成します。
-try
--ブロックを実行し、EXCEPTIONが発生した場合、catch: ブロックを実行します。そのさい、var: で指定した変数で EXCEPTIONを参照できます。fin: ブロックが定義されていた場合、try の終了時点で必ず実行されます。
-throw
--EXCEPTIONを発生します。
-case
--第一引数の内容にマッチするブロックを実行します。
-set?
--ローカル変数が設定されていれば真を返します。
-sets?
--インスタンス変数が設定されていれば真を返します。
-unset
--ローカル変数を消去します。
-unsets
--インスタンス変数を消去します。
-self
--自オブジェクトを返す関数です(変数ではありません)。

**Objectクラスのメソッド
- vars
--インスタンス変数のシンボルをリストで返します。
- method
--メソッドを定義します。
- var?
--インスタンス変数の内容を返します。
- set!
--インスタンス変数に外部から値を設定します。
- type?
--オブジェクトのタイプのシンボルを返します。
- delegate?
--オブジェクトのデレゲータとして設定されているオブジェクトのリストを返します。
- string
--オブジェクトの文字列表現を返します。

**Integerクラスのメソッド
-- +
-- 








----