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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcheckArguments(Term[] args) static InternalActioncreate()execute(TransitionSystem ts, Unifier un, Term[] args) Executes the internal action.intintTerm[]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:InternalActionPrepare body's terms to be used in 'execute', normally it consist of cloning and applying each term- Specified by:
prepareArgumentsin interfaceInternalAction- Overrides:
prepareArgumentsin classDefaultInternalAction
-
getMinArgs
public int getMinArgs()- Overrides:
getMinArgsin classDefaultInternalAction
-
getMaxArgs
public int getMaxArgs()- Overrides:
getMaxArgsin classDefaultInternalAction
-
checkArguments
- Overrides:
checkArgumentsin classDefaultInternalAction- Throws:
JasonException
-
execute
Description copied from interface:InternalActionExecutes 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:
executein interfaceInternalAction- Overrides:
executein classDefaultInternalAction- Throws:
Exception
-