static void HandleApply(Vm vm)
{
var maybeArray = vm.stack.PopTop();
var maybeCallable = vm.stack.PopTop();
if (maybeArray.Kind != Value.Kinds.Array)
{
vm.RaiseShovelError(String.Format(
"Object [{0}] is not an array.", Prim0.ShovelStringRepresentation(vm.api, maybeArray))
);
}
var numArgs = maybeArray.arrayValue.Count;
foreach (var value in maybeArray.arrayValue)
{
vm.stack.Push((Value)value);
vm.IncrementCells(1);
}
vm.stack.Push(maybeCallable);
Vm.HandleCallImpl(vm, numArgs, true, true);
}