Variable var = domain.GetVar (name);
if (isdirect)
- domain.Bind (var, args[i].val);
+ domain.Bind (var, args[i]);
else
domain.Bind (var, args[i].Eval (domain));
}
internal Function Defun (XmlNode node)
{
Name name = node.Attributes[Nfname].Value;
- Function.Lambda lambda;
+ Function func;
- if (! functions.TryGetValue (name, out lambda))
- lambda = RegisterFunction (node);
- lambda.Setup (node, this);
+ if (! functions.TryGetValue (name, out func))
+ func = RegisterFunction (node);
+ ((Function.Lambda) func).Setup (node, this);
return func;
}
if (node != null)
{
Name type = node.Name;
- string val = node.Value;
XmlNodeList range_list = null;
int nranges = 0;
private static object eval_clause (Xex[] args, Domain domain)
{
- return args[0].Eval (domain);
+ return ((Xex) args[0].val).Eval (domain);
}
private static object progn_clause (Xex[] args, Domain domain)