MINERVA superseeded IF/Prolog.
Please see
http://www.ifcomputer.co.jp/MINERVA
for details.
We discontinued to sell IF/Prolog Dec 31. 2003.
Dedicated technical support for IF/Prolog ended Dec 31 2008.
This site is maintained as a community service only.
listディレクトリには、リスト操作のための述語があります。list.proファイルでは、総合的なリストアクセスのための述語が実装されています。alist.proには「連想リスト(association lists)」の2進木による実装があります。lazy.proファイルには、「遅延リスト(lazy list)」のための手続きがあります。multil.proには、マルチリスト(リストのリスト)上で働く手続きが書かれています。projec.proには、構造のリストの特殊な処理手続きが書かれています。
alist.proファイル
-----------------
put_assoc(+キー, +旧ツリー, ?値, -新ツリー)
旧ツリーに値を入れる。
get_assoc(?キー, +ツリー, ?値)
キーと対応する値をツリーから取り出して返す。
assoc_to_list(?連想ツリー, ?リスト)
連想ツリーをリストに変換する、あるいはその逆を行なう。
map_assoc(+述語, +旧ツリー, -新ツリー)
ツリー上の各Xに対して述語(X,Y)を呼び出し、Yのツリーを作る。
lazy.proファイル
----------------
make_lazy(+要素,+関係,-リスト)
関係の元にある要素の遅延リストであるリストを作成する。
head_lazy(+リスト,-先頭)
遅延リストの先頭を返す。
tail_lazy(+リスト,-末尾)
遅延リストの末尾を返す。
member_check_lazy(+要素,+リスト)
メンバーを見つけることはできるが、無いものを見つけることはできない。
lists.proファイル
-----------------
correspond(?要素1,?リスト1,?リスト2,?要素2)
リスト1における要素1の位置は、リスト2における要素2の位置と同じ。
delete(+リスト1,+要素,-リスト2)
リスト1からすべての「要素」を除いたものをリスト2とする。
last(?要素,?リスト)
「要素」はリストの最後の要素。
nextto(?要素1,?要素2,?リスト)
要素1と要素2は、リストの中で隣りあっている。
nmember(?要素,+リスト,?インデックス)
「要素」はリストのインデックス番目の要素。
nmembers(+インデックスリスト,+リスト,-要素リスト)
要素リストは、インデックスリストの各インデックスで示される位置にあるリストの要素のリスト。
nth0member(?インデックス,+リスト,?要素)
「要素」は、0を最初とするインデックス番目のリストの要素。
nth1member(?インデックス,+リスト,?要素)
「要素」は、1を最初とするインデックス番目のリストの要素。
nth0member(?インデックス,?リスト,?要素,?残り)
「要素」は、0を最初とするインデックス番目のリストの要素。リストから要素を除いたものを残りとする。
nth1member(?インデックス,?リスト,?要素,?残り)
「要素」は、1を最初とするインデックス番目のリストの要素。リストから「要素」を除いたものを残りとする。
numlist(+下限,+上限,-リスト)
リストは下限ではじまり上限で終る整数のリスト。下限<=上限。
perm(+リスト,-順列)
perm(-リスト,+順列)
リストの順列。
remove_dups(+リスト1,-リスト2)
sort/2と同じ。リスト1から重複する要素をすべて除く。
same_length(?リスト1,?リスト2)
2つのリストの長さが同じであるかどうかをチェックする。
select(?X,+Xlist,?Y,?Ylist)
XlistはYlistと等しい。ただし、XはYに置き換わっている。
shorter_list(?リスト1,?リスト2)
リスト1は、リスト2より短い。
subseq(?リスト,?部分列,?残り)
リストは、部分列と残りからなる。
subseq0(+リスト,?部分列)
「部分列」はリストの部分列であり、リスト = 「部分列」であってもよい。
subseq1(+リスト,?SubSequence)
「部分列」はリストの真の部分列であり、リスト = 「部分列」であってはならない。
sumlist(+リスト,-合計)
リストの各要素の和は「合計」である。
multil.proファイル
------------------
ml_taketop(+リストs, -先頭s,-末尾s)
先頭sは、リストsの各リストの先頭からなるリストである。末尾sはリストsの各リストの末尾のリストである。
ml_allempty(+リストs)
「リストs」は、空のリストのリストである。
ml_maplist(+述語,+リストs)
「リストs」の各リストから要素を一つずつ取り出して組にしたものを「述語」に適用する。
ml_maplist(+述語,+リストs,?Extra)
ml_maplist/2と同じであるが、追加の引数としてExtraを渡す。
ml_maplist(+述語,+リストs,?初期値,?結果)
ml_maplist/2と同じであるが、累計の機能がある。
ml_member(?要素s,+リストs)
「要素s」が「リストs」のメンバーであるかどうかをチェックする。
ml_select(?要素s,+リストs,?あまり)
あまりは、リストsから要素sを除いたものである。
ml_putback(+先頭s,?末尾s,?リストs)
末尾sの各リストの先頭に先頭sの各要素を加えたものがリストsである。
order.proのファイル
-------------------
ordered(+リスト)
リストが順序付けられているかどうかをチェックする。
ordered(+述語,+リスト)
リストが、2項述語「述語」のもとで、順序付けられているかどうかをチェックする。
projec.proファイル
------------------
keys_and_values(?キー値リスト,?キーリスト,?値リスト)
キー値リストをキーリストと値リストに分ける。
project(+複合項リスト,+インデックス,?引数リスト)
「複合項リスト」の各複合項のインデックス番目の引数からなるリスト「引数リスト」を返す。
|