イフコンピュータ > MINERVA > マニュアル > レファレンス > 述語 > 全解 > findall/3

findall/3

MINERVA
ifcomputer logo
f
Expert Services on the Web

与えられたパターンに従ってゴールの全解のリストをつくる。

findall(+項, +ゴール, ?項リスト)

findall/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).

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

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

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

Element = _1 What = _2 List = []

標準

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

関連

bagof/3 , setof/3 , collect/3.

document: http://www.ifcomputer.co.jp/MINERVA/Manual/Reference/Predicates/all_solutions/findall/print_jp.html
published 2008/9/1 update 1998/8/5 (c) 1996-2006 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