package tefkat.engine.runtime.functions;
import java.util.Collection;
import tefkat.engine.runtime.Binding;
import tefkat.engine.runtime.Context;
import tefkat.engine.runtime.Function;
import tefkat.engine.runtime.NotGroundException;
import tefkat.engine.runtime.ResolutionException;
public class Foldl implements Function {
public Object call(Context context, Binding unifier, Object[] params) throws ResolutionException, NotGroundException {
final String function = (String) params[0];
Object result = params[1];
final Collection collection = (Collection) params[2];
final Function func = context.getFunction(function);
for (Object param: collection) {
Object[] args = {result, param};
result = func.call(context, unifier, args);
}
return result;
}
}