-
Notifications
You must be signed in to change notification settings - Fork 2
Rational Agent と ThinkEngine
Itsuki Noda edited this page Feb 21, 2015
·
6 revisions
<expr> ::= <object> | <atom> | <array>
<object> ::= { "":<head>, <slot>:<expr>, <slot>:<expr>,... }
<head> ::= 文字列
<atom> ::= true | false | null | 文字列
<array> ::= [ <expr>, <expr>, ... ]
{"":"if",
"cond":<expr>,
"then":<expr>,
"else":<expr>}
または
{"":"if",
"cond":<expr>,
"then":<expr>}
-
"cond"
の<expr>
を評価し、その返り値がfalse
もしくはnull
でなければ、"then"
の<expr>
を実行。 そうでなければ、"else"
の<expr>
を実行。 - 戻り値は、最後に実行した
<expr>
の値。
{"":"and",
"body":[<expr>,<expr>,...]}
-
"body"
の配列に含まれる<expr>
を順に評価していき、其の戻り値がfalse
もしくはnull
の場合はそこで実行を終わる。 - 戻り値は、最後に実行した
<expr>
の値。
{"":"or",
"body":[<expr>,<expr>,...]}
-
"body"
の配列に含まれる<expr>
を順に評価していき、其の戻り値がfalse
もしくはnull
以外の場合はそこで実行を終わる。 - 戻り値は、最後に実行した
<expr>
の値。
{"":"not",
"body":<expr>}
-
"body"
の<expr>
を評価し、その戻り値がfalse
もしくはnull
時はtrue
を、それ以外の場合はfalse
を返す。
{"":"proc",
"body":[<expr>,<expr>,...]}
もしくは
[<expr>,<expr>,<expr>,...]
-
<expr>
を前から順に、最後まで評価していく。 - 戻り値は、最後に実行した
<expr>
true
もしくは
{"":true}
- かならず
true
を返す。
false
もしくは
{"":false}
- かならず
false
を返す。
null
もしくは
{"":null}
- かならず
null
を返す。
{"":quote,
"value":<expr>}
-
<expr>
を評価せずにそのままの値を返す。