sisc.nativefun
Class FixableProcedure

java.lang.Object
  extended by sisc.util.Util
      extended by sisc.data.Expression
          extended by sisc.data.Value
              extended by sisc.data.Procedure
                  extended by sisc.nativefun.NativeProcedure
                      extended by sisc.nativefun.FixableProcedure
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, Immediate, NamedValue, ExpressionVisitee, Version
Direct Known Subclasses:
IndexedFixableProcedure

public abstract class FixableProcedure
extends NativeProcedure
implements NamedValue

A fixable procedure is a Scheme procedure similar to a NativeProcedure, but which does not need access to the Interpreter to be implemented, causes no side-effects, and requires three or fewer arguments. In general, most purely functional procedures are fixable.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class sisc.data.Expression
annotations, EMPTYSET
 
Fields inherited from class sisc.util.Util
BACKQUOTE, BEGIN, bundles, caseSensitive, EMPTYLIST, EMPTYVEC, EOF, ERRORK, EVAL, EXPSC, EXPTOP, FALSE, FCONT, FIVE, JEXCEPTION, LAMBDA, LOCATION, maxFloatPrecision, MESSAGE, minFloatPrecision, NAME, OTHER, PARENT, permitInterrupts, QUOTE, QUOTESYM, REPORT, SETBANG, SISC, SISC_SPECIFIC, SISCB, SOURCE_COLUMN, SOURCE_FILE, SOURCE_LINE, SYMENV, THIS, TOPLEVEL, TRUE, UNQUOTE, UNQUOTE_SPLICING, VOID, ZV
 
Fields inherited from interface sisc.util.Version
VERSION
 
Constructor Summary
FixableProcedure()
           
 
Method Summary
 Value apply()
          A fixable procedure must subclass one of the following methods
 Value apply(Value v1)
           
 Value apply(Value[] v)
           
 Value apply(Value v1, Value v2)
           
 Value apply(Value v1, Value v2, Value v3)
           
 Value doApply(Interpreter r)
          A NativeProcedure instance must implement this method, which performs the actual processing specific to that procedure, and returns a Value.
 
Methods inherited from class sisc.nativefun.NativeProcedure
apply, display
 
Methods inherited from class sisc.data.Procedure
error, throwArgSizeException, throwNestedPrimException, throwNestedPrimException, throwPrimException
 
Methods inherited from class sisc.data.Value
displayNamedOpaque, equals, eqv, eval, express, getValue, synopsis, synopsis, toString, valueEqual, valueHashCode, write, writeReplace
 
Methods inherited from class sisc.data.Expression
deserialize, deserializeAnnotations, getAnnotation, getAnnotation, getAnnotationKeys, getAnnotations, getName, readExternal, readResolve, serialize, serializeAnnotations, setAnnotation, setAnnotation, setName, visit, visitAnnotations, writeExternal
 
Methods inherited from class sisc.util.Util
annotated, annotatedAppEval, append, argCheck, argsToSymbols, assq, bininport, bininstream, binoutport, binoutstream, box, character, charinport, charinreader, charoutport, charoutwriter, charsetFromString, chr, cont, currentClassLoader, env, error, error, error, error, error, error, error, expr, getDefaultCharacterSet, immutablePair, immutableVector, inport, javaExceptionToString, javaWrap, justify, length, liMessage, liMessage, liMessage, liMessage, liMessage, liMessage, liMessage, list, list, list, list, list, makeURL, mapcar, memq, nlib, num, outport, pair, pairToExpressions, pairToExpVect, pairToValues, proc, read, registerBundle, reverse, reverseInPlace, simpleErrorToString, sourceAnnotations, str, string, sym, symbol, symval, truePair, truth, truth, typeError, typeError, updateName, url, url, url, valArrayToList, valArrayToList, valArrayToVec, vec, warn, warn, warn
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface sisc.data.NamedValue
getName, setName
 

Constructor Detail

FixableProcedure

public FixableProcedure()
Method Detail

apply

public Value apply()
            throws ContinuationException
A fixable procedure must subclass one of the following methods

Throws:
ContinuationException

apply

public Value apply(Value v1)
            throws ContinuationException
Throws:
ContinuationException

apply

public Value apply(Value v1,
                   Value v2)
            throws ContinuationException
Throws:
ContinuationException

apply

public Value apply(Value v1,
                   Value v2,
                   Value v3)
            throws ContinuationException
Throws:
ContinuationException

apply

public Value apply(Value[] v)
            throws ContinuationException
Throws:
ContinuationException

doApply

public Value doApply(Interpreter r)
              throws ContinuationException
Description copied from class: NativeProcedure
A NativeProcedure instance must implement this method, which performs the actual processing specific to that procedure, and returns a Value.

Specified by:
doApply in class NativeProcedure
Throws:
ContinuationException