built-in method

findall/4

Description

findall(Template, Goal, List, Tail)

Variant of the findall/3 method that allows passing the tail of the results list. It succeeds returning the tail argument when the goal has no solutions.

This built-in meta-predicate is declared as a private method and thus cannot be used as a message to an object.

Meta-predicate template

findall(*, 0, *, *)

Modes and number of proofs

findall(?term, +callable, ?list, ?term) - zero_or_one

Errors

Goal is a variable:
instantiation_error
Goal is neither a variable nor a callable term:
type_error(callable, Goal)
Goal is a call to a non-existing predicate:
existence_error(procedure, Predicate)

Examples

To find all solutions in the context of the object or category containing the call:
findall(Template, Goal, List, Tail)
To find all solutions of sending a message to self:
findall(Template, ::Message, List, Tail)
To find all solutions of sending a message to an explicit object:
findall(Template, Object::Message, List, Tail)