// Copyright (c) 1996-2002 Brian D. Carlstrom

package bdc.scheme.procedure;

import bdc.scheme.Stack;
import bdc.scheme.Scheme;
import bdc.scheme.SchemeException;
import bdc.scheme.expression.Procedure3;
import java.util.Map;

/**
    Primitive for Map.put
*/
public class MapPut extends Procedure3
{
    public Object apply3 (Stack stack) throws SchemeException
    {
        Object o1 = stack.array[stack.inUse-1];
        Object o2 = stack.array[stack.inUse-2];
        Object o3 = stack.array[stack.inUse-3];
        return Scheme.hashtable(o1, this).put(Scheme.object(o2),
                                              Scheme.maybeString(o3));
    }
}
