package edu.stanford.nlp.ling.tokensregex.types; import edu.stanford.nlp.ling.tokensregex.Env; import java.util.List; /** * A function that takes as input an environment (Env) and a list of values * ({@code List<Value>}) and returns a Value. * * @author Angel Chang */ public interface ValueFunction { /** * Checks if the arguments are valid. * * @param in * @return true if the arguments are valid (false otherwise) */ boolean checkArgs(List<Value> in); /** * Applies the function to the list values using the environment as context * and returns the evaluated value. * * @param env the environment to use * @param in the input arguments * @return Value indicating the value of the function */ Value apply(Env env, List<Value> in); /** * Returns a string describing what this function does. * * @return String describing the function */ String getDescription(); }