ゴールの自由変数の全具体化によって、ゴールの全解の重複を除いた順リストを生成する。...
移動
次へ 前へ
上へ 最上
参考
bagof/3
findall/3
setof/3
イフコンピュータ > MINERVA > マニュアル > レファレンス > 述語 > 全解 > setof/3

setof/3

ゴールの自由変数の全具体化によって、ゴールの全解の重複を除いた順リストを生成する。

setof(+項, +(テンプレート ^ ゴール), ?項リスト)
setof(+項, +ゴール, ?項リスト)

setof/3は、 ゴールの自由変数に対してそれぞれ異なる具体化を行い、 ゴールの解となる、 のすべての具体化の順リストによって項リストを単一化する。 重複はリストから除かれる。
ゴールでのみ現われ、 あるいは テンプレートには現れない変数は、 自由変数と呼ばれる。

引数

項                   項
テンプレート         項
ゴール               ゴール
項リスト             リスト


part_of(house, window).
part_of(house, door).
part_of(house, room).
part_of(room, table).
part_of(room, floor).
part_of(floor, tile).

contains(X, Y) :- part_of(X, Y). contains(X, Y) :- part_of(X, Z), contains(Z, Y).

?- setof(Element, contains(What, Element), List).

Element = _1 What = house List = [door,floor,room,table,tile,window] ;

Element = _1 What = room List = [floor,table,tile] ;

Element = _1 What = floor List = [tile]

?- setof(Element, What ^ contains(What, Element), List).

Element = _1 What = _2 List = [door,floor,room,table,tile,window]

?- setof(Element, contains(house, truck), List)

no

標準

この述語は、ISO-Prolog標準に含まれる。

関連

bagof/3, findall/3.

続く..
MINERVA
ifcomputer logo
f
Expert Services on the Web
言語
English
Japanese
サーバー
USA
Japan
サイトマップ
索引
目次
全体目次
全体索引
印刷向き
imode
PDA
探索
document: http://www.ifcomputer.co.jp/MINERVA/Manual/Reference/Predicates/all_solutions/setof/home_jp.html
published 2012/2/6 update 1998/8/5 (c) 1996-2009 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 start (AT) ifcomputer.com
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
冒頭へ managed with ubiCMS