package at.oefai.aaa.agent.jam;

import java.io.Serializable;

import at.oefai.aaa.agent.jam.types.Binding;
import at.oefai.aaa.agent.jam.types.ExpList;
import at.oefai.aaa.agent.jam.types.Value;

/**
 * Basic interface for defining primitive functionality.
 * @author Marc Huber
 * @author Jaeho Lee
 */
public interface Functions extends Serializable {

    /** Perform the indicated non-decomposable action. */
    Value execute(String name, ExpList args, Binding binding, Goal currentGoal);

}

