Class Fold
- java.lang.Object
-
- org.projog.core.predicate.AbstractPredicateFactory
-
- org.projog.core.predicate.builtin.list.Fold
-
- All Implemented Interfaces:
KnowledgeBaseConsumer,PredicateFactory,PreprocessablePredicateFactory
public final class Fold extends AbstractPredicateFactory implements PreprocessablePredicateFactory
foldl(PredicateName, Values, Start, Result)- combines elements of a list into a single term.See Wikipedia.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classFold.OptimisedFoldprivate static classFold.Retryable
-
Field Summary
Fields Modifier and Type Field Description private static intFIRST_ARG_ARITYThe arity of the predicate represented by the first argument.
-
Constructor Summary
Constructors Constructor Description Fold()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static booleanevaluateFold(PredicateFactory pf, Term action, java.util.List<Term> values, Term start, Term result)private static PredicategetFoldPredicate(PredicateFactory pf, Term action, Term values, Term start, Term result)protected PredicategetPredicate(Term atom, Term values, Term start, Term result)PredicateFactorypreprocess(Term arg)private static java.util.List<Term>toList(Term values)-
Methods inherited from class org.projog.core.predicate.AbstractPredicateFactory
getArithmeticOperators, getFileHandles, getKnowledgeBase, getOperands, getPredicate, getPredicate, getPredicate, getPredicate, getPredicate, getPredicates, getProjogListeners, getSpyPoints, getTermFormatter, init, isRetryable, setKnowledgeBase
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.projog.core.predicate.PredicateFactory
getPredicate, isAlwaysCutOnBacktrack, isRetryable
-
-
-
-
Field Detail
-
FIRST_ARG_ARITY
private static final int FIRST_ARG_ARITY
The arity of the predicate represented by the first argument.- See Also:
- Constant Field Values
-
-
Method Detail
-
preprocess
public PredicateFactory preprocess(Term arg)
- Specified by:
preprocessin interfacePreprocessablePredicateFactory
-
getPredicate
protected Predicate getPredicate(Term atom, Term values, Term start, Term result)
- Overrides:
getPredicatein classAbstractPredicateFactory
-
getFoldPredicate
private static Predicate getFoldPredicate(PredicateFactory pf, Term action, Term values, Term start, Term result)
-
evaluateFold
private static boolean evaluateFold(PredicateFactory pf, Term action, java.util.List<Term> values, Term start, Term result)
-
-