// Copyright (c) 1996-2002 Brian D. Carlstrom

package bdc.scheme.expression;

import bdc.scheme.SchemeException;
import bdc.scheme.Stack;

abstract public class ProcedureN extends Procedure
{

    public Object apply0 (Stack stack) throws SchemeException
    {
        return applyN(0, stack);
    }

    public Object apply1 (Stack stack) throws SchemeException
    {
        return applyN(1, stack);
    }

    public Object apply2 (Stack stack) throws SchemeException
    {
        return applyN(2, stack);
    }

    public Object apply3 (Stack stack) throws SchemeException
    {
        return applyN(3, stack);
    }

    public Object apply4 (Stack stack) throws SchemeException
    {
        return applyN(4, stack);
    }

    abstract public Object applyN (int n, Stack stack) throws SchemeException;
}
