public class findall extends DefaultInternalAction
Internal action: .findall(Var,Literal,List)
.
Description: builds a List of all instantiations of term which make query a logical consequence of the agent's BB. Unlike in Prolog, the second argument cannot be a conjunction.
Parameters:
Examples assuming the BB is currently {a(30),a(20),b(1,2),b(3,4),b(5,6)}:
.findall(X,a(X),L)
: L
unifies with
[30,20]
..findall(c(Y,X),b(X,Y),L)
: L
unifies
with [c(2,1),c(4,3),c(6,5)]
..findall(r(X,V1,V2), (a(X) & b(V1,V2) & V1*V2 < X), L)
: L
unifies
with [r(30,1,2),r(30,3,4),r(20,1,2),r(20,3,4)]
.count
,
setof
,
Serialized FormConstructor and Description |
---|
findall() |
Modifier and Type | Method and Description |
---|---|
protected void |
checkArguments(Term[] args) |
java.lang.Object |
execute(TransitionSystem ts,
Unifier un,
Term[] args)
Executes the internal action.
|
int |
getMaxArgs() |
int |
getMinArgs() |
Term[] |
prepareArguments(Literal body,
Unifier un)
Prepare body's terms to be used in 'execute', normally it consist of cloning and applying each term
|
canBeUsedInContext, destroy, suspendIntention
public int getMinArgs()
getMinArgs
in class DefaultInternalAction
public int getMaxArgs()
getMaxArgs
in class DefaultInternalAction
public Term[] prepareArguments(Literal body, Unifier un)
InternalAction
prepareArguments
in interface InternalAction
prepareArguments
in class DefaultInternalAction
protected void checkArguments(Term[] args) throws JasonException
checkArguments
in class DefaultInternalAction
JasonException
public java.lang.Object execute(TransitionSystem ts, Unifier un, Term[] args) throws java.lang.Exception
InternalAction
execute
in interface InternalAction
execute
in class DefaultInternalAction
java.lang.Exception