Package jason.stdlib
Class if_then_else
java.lang.Object
jason.asSemantics.DefaultInternalAction
jason.stdlib.if_then_else
- All Implemented Interfaces:
InternalAction,Serializable
@Manual(literal="if (formula) { plan_body1 } else { plan_body2 }",
hint="implementation of \"if then, elif then, and else\"",
argsHint="the formula that when true makes the plan_body1 be executed, otherwise plan_body2 will be executed",
argsType="logical formula",
examples={"if (vl(X) & X > 10) { .print(\"value > 10\"); }: where vl(X) is a belief","if (e(1)) { .print(a); } elif (e(2)) { .print(b); } elif (e(3)) { .print(c); } else { .print(d); }"},
seeAlso="")
public class if_then_else
extends DefaultInternalAction
Implementation of if.
Syntax:
if ( logical formula ) {
plan_body1
[ } else { plan_body2 ]
[ } elif ( logical formula ) { plan_body3 ]
}
if logical formula holds, plan_body1 is executed; otherwise, plan_body2/3 is executed.
Example:
+event : context invalid input: '<'- ... if (vl(X) invalid input: '&' X > 10) { // where vl(X) is a belief .print("value > 10"); } ... if (e(1)) { .print(a); } elif (e(2)) { .print(b); } elif (e(3)) { .print(c); } else { .print(d); } ...The unification is changed by the evaluation of the logical formula, i.e., X might have a value after if.
- 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
-
if_then_else
public if_then_else()
-
-
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
-