配列を操作するためのビルトイン群です。
配列は、要素を{}で囲むことによって直接プログラム中に記述できます。
また、要素数の等しいリストとユニフィケーション可能です。
例:
(test)-->
(= *a {1 2 3}), //配列生成
(array *a), //型チェック
(= *b (? ? ?)),
(= *a *b), //リストとのユニフィケーション
(print *b).
述語名/引数 | (createArray *array *num) (createArray *array *list) |
要約 | 新しい配列を作成します。 |
互換性 | Win/Unix |
引数 | *array [out] 新しい配列 *num [in] 配列の要素数 *list [in] 配列を作るためのリスト。 |
成功/失敗 | true 配列の作成に成功し、*arrayとのマッチングに成功した。 false 上記以外 |
解説 | 前者の形式では、新しい配列の要素はニル()です。 後者の形式では、与えられたリストと同じ要素を持つ配列が作成されます。要素が確定していないリストが渡された場合は、確定している部分のみから配列が作られます。 例:(1 2 3 4 | ?)が与えられた場合、{1 2 3 4}が作られる。 |
述語名/引数 | (getArrayElement *array *i *o) |
要約 | 配列の要素を取得します。 |
互換性 | Win/Unix |
引数 | *array [in] 配列 *i [in] 配列のインデックス *o [out] 配列の要素 |
成功/失敗 | true 要素の取得に成功し、*oとのマッチングに成功した。 false 上記以外 |
解説 | *iには0から始まる整数を与えます。 |
述語名/引数 | (setArrayElement *array *i *o) |
要約 | 配列の要素をセットします。 |
互換性 | Win/Unix |
引数 | *array [in] 配列 *i [in] 配列のインデックス *o [out] 配列の要素 |
成功/失敗 | true 要素のセットに成功した。 false 上記以外 |
解説 | *iには0から始まる整数を与えます。 |
述語名/引数 | (resizeArray *array *s) |
要約 | 配列の要素数を設定します。 |
互換性 | Win/Unix |
引数 | *array [in] 配列 *s [in] 要素数 |
成功/失敗 | true 要素数の変更に成功した。 false 上記以外 |
解説 | *sで指定された値が変更前の要素数より大きい場合は追加された要素はニルになります。 |
述語名/引数 | (getArraySize *array *s) |
要約 | 配列の要素数を取得します。 |
互換性 | Win/Unix |
引数 | *array [in] 配列 *s [out] 要素数 |
成功/失敗 | true 要素数の取得に成功し*sとのマッチングに成功した。 false 上記以外 |
解説 |
述語名/引数 | (insertArrayElement *array *i *o) |
要約 | 配列に要素を挿入します。 |
互換性 | Win/Unix |
引数 | *array [in] 配列 *i [in] 配列のインデックス *o [in] 配列の要素 |
成功/失敗 | true 要素のセットに成功した。 false 上記以外 |
解説 | *iには0から始まる整数を与えます。*oで指定されたオブジェクトは*iが指定する要素の直前に挿入されます。 |
述語名/引数 | (eraseArrayElement *array *i) |
要約 | 配列の要素を削除します。 |
互換性 | Win/Unix |
引数 | *array [in] 配列 *i [in] 配列のインデックス |
成功/失敗 | true 要素の削除に成功した。 false 上記以外 |
解説 | *iには0から始まる整数を与えます。 |