Package jason.stdlib

Class 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: