Algernon Software

org.algernon.aam.opcode
Class For

java.lang.Object
  extended byorg.jatha.dynatype.StandardLispValue
      extended byorg.algernon.aam.Opcode
          extended byorg.algernon.aam.opcode.For
All Implemented Interfaces:
Comparable, LispValue

public class For
extends Opcode

This class implements the FOR Opcode in the AAM. For binds a variable to the number of results returned from a query, binds an index variable to count through them, and branches on each binding of the result.

   Example: (:FOR ?index ?size ?sister (sister Mary ?sister))
 
Succeeds if the query succeeds. Fails if the query fails.


Field Summary
 
Fields inherited from class org.algernon.aam.Opcode
f_algy, m_name, m_numberOfArguments
 
Fields inherited from class org.jatha.dynatype.StandardLispValue
f_lisp
 
Constructor Summary
For(Algernon algy, String name, int numArgs)
          Create a new AAM For Opcode.
 
Method Summary
 void execute(Processor processor, AlgernonKBSet kbSet)
          Executes the For opcode.
 
Methods inherited from class org.algernon.aam.Opcode
argumentToClass, argumentToClass, argumentToFacet, argumentToFacet, argumentToFrame, argumentToFrame, argumentToInstance, argumentToInstance, argumentToInstance, argumentToRelation, argumentToRelation, getName, getNumberOfArguments, setName, setNumberOfArguments, toString
 
Methods inherited from class org.jatha.dynatype.StandardLispValue
abs, acos, add, adjustSpecialCount, append, apply, apropos_print, asin, assoc, atan, atan2, atom, basic_atom, basic_bignump, basic_consp, basic_constantp, basic_floatp, basic_foreignp, basic_functionp, basic_integerp, basic_keywordp, basic_length, basic_listp, basic_macrop, basic_null, basic_numberp, basic_stringp, basic_symbolp, bignump, boundp, butlast, car, cdr, ceiling, characterp, clrhash, compareTo, concatenate, consp, constantp, contains, copy_list, copy, cos, cot, csc, degreesToRadians, divide, eighth, elt, elt, eq, eql, equal, equalNumeric, factorial, fboundp, fifth, first, floatp, floor, fourth, funcall, functionp, get_specialCount, gethash, gethash, getLisp, greaterThan, greaterThanOrEqual, hash_table_count, hash_table_rehash_size, hash_table_rehash_threshold, hash_table_size, hash_table_test, hashtablep, integerp, internal_getName, internal_prin1_as_cdr, internal_prin1, internal_princ_as_cdr, internal_princ, internal_print_as_cdr, internal_print, iterator, keywordp, last, length, lessThan, lessThanOrEqual, lisp_null, list, listp, max, member, min, multiply, nconc, negate, neql, ninth, nreverse, nstringCapitalize, nstringDowncase, nstringUpcase, numberp, pop, position, prin1, princ, print, push, radiansToDegrees, rassoc, reciprocal, remhash, remove, rest, reverse, rplaca, rplacd, sec, second, set_special, setf_gethash, setf_symbol_function, setf_symbol_plist, setf_symbol_value, setLisp, setPackage, setq, seventh, sin, sixth, specialP, sqrt, string, stringCapitalize, stringDowncase, stringEndsWith, stringEq, stringEqual, stringGreaterP, stringGreaterThan, stringGreaterThanOrEqual, stringLeftTrim, stringLeftTrim, stringLessP, stringLessThan, stringLessThanOrEqual, stringNeq, stringNotGreaterP, stringNotLessP, stringp, stringRightTrim, stringRightTrim, stringStartsWith, stringTrim, stringTrim, stringUpcase, subst, substring, substring, subtract, symbol_function, symbol_name, symbol_package, symbol_plist, symbol_value, symbolp, tan, tenth, third, toCollection, toJava, toJava, toString, toStringAsCdr_internal, toStringAsCdr, toStringShort, toStringShort, toStringSimple, type_of, typep, zerop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

For

public For(Algernon algy,
           String name,
           int numArgs)
Create a new AAM For Opcode.

Method Detail

execute

public void execute(Processor processor,
                    AlgernonKBSet kbSet)
             throws AlgernonDataException
Executes the For opcode. Binds a variable to the number of bindings of another variable present in the topmost binding set. Always succeeds - but the result may be zero if the user specified an incorrect variable. If there are zero bindings, no branches are created but processing continues on the current branch with only the size variable bound.

Overrides:
execute in class Opcode
Throws:
AlgernonDataException

Algernon Software