「リファレンス」の編集履歴(バックアップ)一覧はこちら
リファレンス - (2008/07/27 (日) 18:55:22) の最新版との変更点
追加された行は緑色になります。
削除された行は赤色になります。
**型
- 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クラスのメソッド
- +,-,*,/,%
-- 四則演算、剰余演算。
- =,!=,>,<,>=,<=
-- 比較演算。
- ++,--
-- インクリメント/デクリメント演算。オブジェクトの内容が直接変更されます。
- each
-- オブジェクトの値から、to: で指定された値まで、do: ブロックを実行します。その際、var: で指定した変数が設定されます。
**Realクラスのメソッド
- +,-,*,/
-- 四則演算。
- =,!=,>,<,>=,<=
-- 比較演算
**Listクラスのメソッド
- last
-- リストの最終要素を返します。
- item/car
-- リストの先頭要素を返します。
- next/cdr
-- リストの2番目以降の要素を返します。
- append!/+
-- リストに要素を追加します。元のオブジェクトが変更されます。
- each
-- リストの要素が順番に取り出され、do:ブロックが実行されます。その際、要素は var: で指定した変数で参照できます。
- len
-- リストの長さを返します。
- null?
-- リストが空のとき真を返します。
**Stringクラスのメソッド
- len
-- 文字列の長さを返します。
- =,!=
-- 比較演算。比較対象は、Object::string により変換されるため、どのようなオブジェクトも文字列として比較されます。
**Hashクラスのメソッド
- init
-- Hashのコンストラクタ。
- set
-- Hashに値を設定します。
- get
-- Hashから値を取り出します。
- set?
-- Hashに値が設定されていれば真を返します。
- keys
-- Hashに設定されたすべてのkeyをリストで返します。
- pairs
-- Hashに設定されたすべてのkey、value の対をドット対のリストで返します。
- len
-- Hashの要素数を返します。
- unset
-- Hashから値を削除します。
**Blockクラスのメソッド
- eval
-- クロージャを実行します。
----
**型
- 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 により生成されます。
- RQUOTE
-- 正規表現を記述します。シングルクオート(') で囲んだ文字列です。
**評価の方法
-スクリプトは、複数の行から構成されます。
-各行は ';' (セミコロン) で終了します。
-スクリプトの各行が順次実行されます。
-各行の評価方法は次のとおりです:
--行内の各、REF(ex. $XXX)、EVAL(ex. [XXX; ...]) を評価します。
--行の先頭のシンボルを調べ、これが関数の場合は、その行の残りをパラメータとして関数を実行します。
--行の先頭がオブジェクトの場合、2番目のシンボルを調べ、オブジェクトのメソッドであれば、3番目以降を引数としてメソッドを実行します。
-すべての関数、制御構造は、上記のとおり関数として実行します。
例:
if {$i > 10} then: {println "true"};
上記の場合、まず、'if' という関数が存在するかを調べ、この関数に対して {$i > 10} 、then: {println "true"} を引数として渡します。
if 関数は、{$i > 10} を評価し、この結果により then: ブロック(もしくは else: ブロック)を実行します。
$x foo 1;
上記の場合、$x がオブジェクトの場合、$x のメソッドとして 'foo' が存在するかを調べます。foo が見つかった場合、$x のオブジェクト環境を設定し、foo の引数として 1 を渡し、実行します。
**コマンドリファレンス
組み込みのコマンド(関数)の一覧です。
-false
--nil を返します。toy の場合、nil のみが偽として扱われます。
-true
--true を返します。
-set
--ローカル変数に値を設定します。
-sets
--インスタンス変数に値を設定します。
-defvar/setvar
--グローバル変数に値を設定します。defvar は、グローバルに設定されていない場合に実行可能です。setvar は、すでに存在するグローバル変数の内容を変更します。
-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?
--インスタンス変数が設定されていれば真を返します。
-defvar?
--グローバル変数が設定されていれば真を返します。
-unset
--ローカル変数を消去します。
-unsets
--インスタンス変数を消去します。
-self
--自オブジェクトを返す関数です(変数ではありません)。
-stack-trace
--スタックトレースを示す文字列を返します。
-trap
--UNIXシグナルのハンドラを設定します。ハンドラを省略した場合、ハンドラは削除されます。
-load
--スクリプトをロードし、評価します。
-sid
--関数の script-id を返します。(デバッグ用)
-!/and/or
--論理演算の 否定/積/和 です。
-sdir
--ロードされたスクリプトのリストを返します。
-alias
--変数の別名を定義します。変数 i の別名を a として定義する場合、次のようにします。
alias i a
--また、up: 数値 を指定すると、コールスタックを遡り参照ができます。
-sleep
--ミリ秒単位で sleep します。
-file
--ファイルに関する問い合わせコマンドです。
---file exists?
----ファイルが存在すれば真を返します。
---file dir?
----ファイルがディレクトリであれば真を返します。
---file read?
----ファイルが読み込み可能であれば真を返します。
---file write?
----ファイルが書き込み可能であれば真を返します。
---file exec?
----ファイルが実行可能であれば真を返します。
---file list
----指定したディレクトリのファイルリスとを返します。
-exists?
--変数が存在すれば真を返します。変数の存在チェック順序は、$による参照順序と同じです。
**Objectクラスのメソッド
- vars
--インスタンス変数のシンボルをリストで返します。
- method
--メソッドを定義します。
- var?
--インスタンス変数の内容を返します。
- set!
--インスタンス変数に外部から値を設定します。
- type?
--オブジェクトのタイプのシンボルを返します。
- delegate?
--オブジェクトのデレゲータとして設定されているオブジェクトのリストを返します。
- string
--オブジェクトの文字列表現を返します。
**Integerクラスのメソッド
- +,-,*,/,%
-- 四則演算、剰余演算。
- =,!=,>,<,>=,<=
-- 比較演算。
- ++,--
-- インクリメント/デクリメント演算。オブジェクトの内容が直接変更されます。
- each
-- オブジェクトの値から、to: で指定された値まで、do: ブロックを実行します。その際、var: で指定した変数が設定されます。
**Realクラスのメソッド
- +,-,*,/
-- 四則演算。
- =,!=,>,<,>=,<=
-- 比較演算
**Listクラスのメソッド
- last
-- リストの最終要素を返します。
- item/car
-- リストの先頭要素を返します。
- next/cdr
-- リストの2番目以降の要素を返します。
- append!/+
-- リストに要素を追加します。元のオブジェクトが変更されます。
- each
-- リストの要素が順番に取り出され、do:ブロックが実行されます。その際、要素は var: で指定した変数で参照できます。
- len
-- リストの長さを返します。
- null?
-- リストが空のとき真を返します。
- join
-- リストの各要素を STRING へ変換し結合します。sep: キーワードが指定された場合は、要素間にセパレータ文字列を挿入します。
- add
-- リストに要素を追加し、オブジェクト全体を返します。
- .
-- リスとに要素を追加しますが、元の変数は変更されません。
- filter
-- ブロックの実行結果が真である要素のみのリストを返します。
- map
-- ブロックの実行結果による要素のリストを返します。
**Stringクラスのメソッド
- len
-- 文字列の長さを返します。
- =,!=
-- 比較演算。比較対象は、Object::string により変換されるため、どのようなオブジェクトも文字列として比較されます。
- +
-- STRING オブジェクトに引数の要素を追加します。
- eval
-- 文字列をスクリプトとして評価します。
- =~ / match
-- 文字列に対して、引数で指定された正規表現(RQote … 'regex')がマッチすれば、そのマッチした情報(開始位置、終了位置)のリストを返します。
**Hashクラスのメソッド
- init
-- Hashのコンストラクタ。
- set
-- Hashに値を設定します。
- get
-- Hashから値を取り出します。
- set?
-- Hashに値が設定されていれば真を返します。
- keys
-- Hashに設定されたすべてのkeyをリストで返します。
- pairs
-- Hashに設定されたすべてのkey、value の対をドット対のリストで返します。
- len
-- Hashの要素数を返します。
- unset
-- Hashから値を削除します。
**Blockクラスのメソッド
- eval
-- クロージャを実行します。
- >>
-- ブロックの実行結果をファイルへ出力します。
**Fileクラスのメソッド
- open
-- ファイルをオープンします。mode: でオープンモードを指定します(i: 入力(デフォルト)、o: 出力、a: 追加書き出し)。
- close
-- ファイルをクローズします。
- gets
-- ファイルを行単位(\nで区切られた行)で読み込みます。
- puts
-- ファイルに書き出します。
- flush
-- ファイルに書き出した内容をフラッシュします。
- stat
-- ファイルの状態を表示します。
- eof?
-- ファイルが EOF に達している場合、非 nil を返します。
- ready?
-- ファイルが読み書き可能な状態であれば真を返します。
**Arrayクラスのメソッド
- + , append
-- Array の最後の要素に値を追加します。要素数は自動拡張します。
- set
-- Array の指定位置にオブジェクトを設定します。
- get
-- Array の指定位置のオブジェクトを返します。
- len
-- Array の要素数を返します。
- each
--Arrayの要素が順番に取り出され、do:ブロックが実行されます。その際、要素は var: で指定した変数で参照できます。
----