コピー、型変換

Topへ

型チェックへ

概要: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キャラクターの配列かどうか調べます。