コピー、型変換
概要:ETIの型変換は、C言語と異なり、対象そのものを変換するのではなく、対象を基に新しいオブジェクトを生成します。
述語名/引数 | (copy *s *ns) |
要約 | オブジェクト*sを複製して*nsとして返します。 |
互換性 | Win Unix |
解説 | 実際に複製されるのは、ビルトインルールvarに与えて成功するオブジェクトです。その他のオブジェクトはそのものが返されます。 |
述語名/引数 | (atoi *s *i) |
要約 | 文字列を整数に変換します。 |
互換性 | Win Unix |
解説 | N/A |
述語名/引数 | (atof *s *i) |
要約 | 文字列を実数に変換します。 |
互換性 | Win Unix |
解説 | N/A |
述語名/引数 | (ctoi *s *i) |
要約 | 文字を整数に変換します。 |
互換性 | Win Unix |
解説 | N/A |
述語名/引数 | (ftoi *f *i) |
要約 | 実数を整数に変換します。 |
互換性 | Win Unix |
解説 | *f は実数でない場合(整数など)は失敗します。 |
述語名/引数 | (itof *i *f) |
要約 | 整数を実数に変換します。 |
互換性 | Win Unix |
解説 | N/A |
述語名/引数 | (itoc *i *c) |
要約 | 整数を文字に変換します。 |
互換性 | Win Unix |
解説 | N/A |
述語名/引数 | (itob *i *f) |
要約 | 整数を2進数を表すリストに変換します。 |
互換性 | Win Unix |
解説 | N/A |
例:
[D]>(itob 2 *)
-------------------------D execution ---------------------
----------------------------------------------------------
succeeded.
(itob 2 (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0))
述語名/引数 | (btoi *b *i) |
要約 | 2進数を表すリストを整数に変換します。 |
互換性 | Win Unix |
解説 | N/A |
述語名/引数 | (stoi *s *i) |
要約 | シンボルを整数に変換します。 |
互換性 | Win Unix |
解説 | シンボルには対応する一意の整数が割り当てられます。このビルトインはその整数を取得します。 |
述語名/引数 | (strList *s *l) |
要約 | 与えられた文字列を分解したリストを生成します。 |
互換性 | Win Unix |
解説 | 分解された文字列は一文字を要素とするリストになります。 |
例:
[D]>(strList "123" *)
-------------------------D execution ---------------------
----------------------------------------------------------
succeeded.
(strList "123" ('1' '2' '3'))
execution time: 20369 [msec]
述語名/引数 | (listStr *s *l) |
要約 | 与えられたリストの要素を結合した文字列を生成します。 |
互換性 | Win Unix |
解説 | N/A |
述語名/引数 | (sread *str *s) (sread *str *s *list) |
要約 | 与えられた文字列からS式を生成します。 |
互換性 | Win Unix |
引数 | *str [in] 文字列 *s [out] 文字列から生成された文字列 *list [out] 文字列中の変数と生成された変数の対応表 |
成功/失敗 | true 文字列からS式の生成に成功し、*sと*listに関するマッチングがそれぞれ成功した。 false 上記以外 |
解説 | *listに入るデータの形式はfread/3のものと同等です。 |
例:
[D]>(sread "(test 1 2)" *)
-------------------------D execution ---------------------
----------------------------------------------------------
succeeded.
(strList "(test 1 2)" (test 1 2))
execution time: 0 [msec]
述語名/引数 | (srread *str *s) (srread *str *s *list) |
要約 | 与えられた文字列からS式を生成します。このルールはR式を読み込むことができます。 |
互換性 | Win Unix |
引数 | *str [in] 文字列 *s [out] 文字列から生成された文字列 *list [out] 文字列中の変数と生成された変数の対応表 |
成功/失敗 | true 文字列からS式の生成に成功し、*sと*listに関するマッチングがそれぞれ成功した。 false 上記以外 |
解説 | *listに入るデータの形式はfread/3のものと同等です。 |
例:
[D]>(srread "(test *1 *2)-->." ? ?)
-------------------------D execution ---------------------
----------------------------------------------------------
succeeded.
(srread "(test *1 *2)-->." (as (test *A *B) :) (("*1" *A) ("*2" *B)))
execution time: 0 [msec]
述語名/引数 | (ttos *text *s) |
要約 | テキストをS式に変換します。 |
互換性 | Win Unix |
解説 | ttosはsreadより高速でが、R式を処理できません。R式を読み込む場合にはsreadを使ってください。 |
述語名/引数 | (arrayToString *array *start *s) |
要約 | 配列から文字列を作ります。 |
引数 | *array [in] 配列 *start [in] 生成に利用する最初の要素のインデックスをあらわす整数 *s [out] 配列から生成された文字列 |
互換性 | Win Unix |
解説 | *startは、文字列をあらわす配列が先頭にBOMを含む場合、それをスキップするために用意されています。BOMを含まない場合は0を与えます。 |
述語名/引数 | (stringToArray *string *array) |
要約 | 文字列から8ビットキャラクター配列を作ります。 |
引数 | *string [in] 配列から生成された文字列 *array [out] 配列 |
互換性 | Win Unix |
解説 | N/A |
概要:これらのルールは対象のオブジェクトに影響を与えません。
述語名 | 機能 | 備考 |
(var *v) | 変数かどうか調べます。 | |
(pvar *v) | 通常の変数かどうか調べます。 | |
(ivar *v) | 情報つき変数かどうか調べます。 | |
(nil *n) | ニルかどうか調べます。 | |
(list *l) | リストかどうか調べます。 | list は*lがニルのときも成功します。 |
(cons *c) | コンスかどうか調べます。 | consは*cがニルのとき失敗します。 |
(number *n) | 数字かどうか調べます。 | |
(int *i) | 整数かどうか調べます。 | |
(real *r) (float *f) | 実数かどうか調べます。 | |
(char *c) (wchar_t *w) | 文字かどうか調べます。 | |
(string *s) | 文字列かどうか調べます。 | |
(symbol *s) | シンボルかどうか調べます。 | |
(world *w) | ワールド識別子かどうか調べます。 | |
(rule *r) | ルール識別子かどうか調べます。 | |
(nrule *r) | Nルール識別子かどうか調べます。 | |
(drule *r) | Dルール識別子かどうか調べます。 | |
(array *a) | 配列かどうか調べます。 | |
(objectArray *) | オブジェクトの配列かどうか調べます。 | |
(8BitCharacterArray *a) | 8Bitキャラクターの配列かどうか調べます。 |