Exemplo n.º 1
0
 public void AddApp(Element res, params Element[] args)
 {
     if (Arity == 0)
     {
         SetConstant(res);
     }
     else
     {
         if (args.Length != Arity)
         {
             throw new ArgumentException();
         }
         var t = new FuncTuple(this, res, (Element[])args.Clone());
         apps.Add(t);
         var u = new HashSet <Element>();
         res.references.Add(t);
         u.Add(res);
         foreach (var a in args)
         {
             if (!u.Contains(a))
             {
                 u.Add(a);
                 a.references.Add(t);
             }
         }
     }
 }
Exemplo n.º 2
0
            public void SetConstant(Element res)
            {
                if (Arity != 0 || apps.Count > 0)
                {
                    throw new ArgumentException();
                }
                var t = new FuncTuple(this, res, null);

                apps.Add(t);
                res.references.Add(t);
            }
Exemplo n.º 3
0
            public void SetConstant(Element res)
            {
                if (apps.Count > 0)
                {
                    throw new ArgumentException();
                }
                Arity = 0; // will throw exception if arity is not null or already 0
                var t = new FuncTuple(this, res, null);

                apps.Add(t);
                res.references.Add(t);
            }
Exemplo n.º 4
0
 public void AddApp(Element res, params Element[] args)
 {        
   if (Arity == 0)
     SetConstant(res);
   else {
     if (args.Length != Arity)
       throw new ArgumentException();
     var t = new FuncTuple(this, res, (Element[])args.Clone());
     apps.Add(t);
     var u = new HashSet<Element>();
     res.references.Add(t);
     u.Add(res);
     foreach (var a in args)
       if (!u.Contains(a)) {
         u.Add(a);
         a.references.Add(t);
       }
   }
 }
Exemplo n.º 5
0
 public void SetConstant(Element res)
 {
   if (Arity != 0 || apps.Count > 0)
     throw new ArgumentException();
   var t = new FuncTuple(this, res, null);
   apps.Add(t);
   res.references.Add(t);
 }