Package jason.stdlib
Class foreach
java.lang.Object
jason.asSemantics.DefaultInternalAction
jason.stdlib.foreach
- All Implemented Interfaces:
InternalAction
,Serializable
@Manual(literal="for (formula) { plan_body }",
hint="for all unifications of logical formula, the plan_body is executed",
argsHint="the formula that when true makes the plan_body be executed",
argsType="logical formula",
examples={"for ( vl(X) ) { .print(X); }: print all values of X","for ( .member(X,[a,b,c]) ) { .print(X); }: print all members of the list","for ( .range(I,1,10) ) { .print(I); }: print all values from 1 to 10"},
seeAlso="")
public class foreach
extends DefaultInternalAction
Internal action: .for(formula) { plan_body }
.
Description: Implementation of for. For all unifications of logical formula, the plan_body is executed.
Syntax:
for ( logical formula ) { plan_body }
Parameters:
- + formula (logical formula): the formula that when true makes the plan_body be executed.
Example:
+event : context
invalid input: '<'- ....
for ( vl(X) ) {
.print(X); // print all values of X
}
for ( .member(X,[a,b,c]) ) {
.print(X); // print all members of the list
}
for ( .range(I,1,10) ) {
.print(I); // print all values from 1 to 10
}
....
The unification resulted from the evaluation of the logical formula is used only inside the loop,
i.e., the unification after the for is the same as before.
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
checkArguments
(Term[] args) static InternalAction
create()
execute
(TransitionSystem ts, Unifier un, Term[] args) Executes the internal action.int
int
Term[]
prepareArguments
(Literal body, Unifier un) Prepare body's terms to be used in 'execute', normally it consist of cloning and applying each termMethods inherited from class jason.asSemantics.DefaultInternalAction
canBeUsedInContext, destroy, suspendIntention
-
Constructor Details
-
foreach
public foreach()
-
-
Method Details
-
create
-
prepareArguments
Description copied from interface:InternalAction
Prepare body's terms to be used in 'execute', normally it consist of cloning and applying each term- Specified by:
prepareArguments
in interfaceInternalAction
- Overrides:
prepareArguments
in classDefaultInternalAction
-
getMinArgs
public int getMinArgs()- Overrides:
getMinArgs
in classDefaultInternalAction
-
getMaxArgs
public int getMaxArgs()- Overrides:
getMaxArgs
in classDefaultInternalAction
-
checkArguments
- Overrides:
checkArguments
in classDefaultInternalAction
- Throws:
JasonException
-
execute
Description copied from interface:InternalAction
Executes the internal action. It should return a Boolean or an Iterator. A true boolean return means that the IA was successfully executed. An Iterator result means that there is more than one answer for this IA (e.g. see member internal action). - Specified by:
execute
in interfaceInternalAction
- Overrides:
execute
in classDefaultInternalAction
- Throws:
Exception
-