Func models an executable subroutine.
Inheritance: FanObj
Exemple #1
0
 public static bool all(string self, Func f)
 {
     int len = self.Length;
       for (int i=0; i<len ; i++)
     if (f.call(self[i], i) == Boolean.False)
       return false;
       return true;
 }
Exemple #2
0
 public static Serializable make(Func func)
 {
     Serializable self = new Serializable();
       if (func != null)
       {
     func.enterCtor(self);
     func.call(self);
     func.exitCtor();
       }
       return self;
 }
Exemple #3
0
        public static void addHandler(Func func)
        {
            if (!func.isImmutable())
            throw NotImmutableErr.make("handler must be immutable").val;

              lock (lockObj)
              {
            List temp = new List(Sys.FuncType, m_handlers).add(func);
            m_handlers = (Func[])temp.toArray(new Func[temp.sz()]);
              }
        }
Exemple #4
0
 public static Deprecated make(Func func)
 {
     Deprecated self = new Deprecated();
       if (func != null)
       {
     func.enterCtor(self);
     func.call(self);
     func.exitCtor();
       }
       return self;
 }
Exemple #5
0
 public static FacetMeta make(Func func)
 {
     FacetMeta self = new FacetMeta();
       if (func != null)
       {
     func.enterCtor(self);
     func.call(self);
     func.exitCtor();
       }
       return self;
 }
Exemple #6
0
        public static void make_(ActorPool self, Func itBlock)
        {
            if (itBlock != null)
              {
            itBlock.enterCtor(self);
            itBlock.call(self);
            itBlock.exitCtor();
              }
              if (self.m_maxThreads < 1) throw ArgErr.make("ActorPool.maxThreads must be >= 1, not " + self.m_maxThreads).val;

              self.m_threadPool = new ThreadPool((int)self.m_maxThreads);
              self.m_scheduler = new Scheduler();
        }
Exemple #7
0
        /// <summary>
        /// Constructor used by GenericType and we are given the generic
        /// method that is being parameterized.
        /// </summary>
        public Method(Type parent, string name, int flags, Facets facets, int lineNum, Type returns, Type inheritedReturns, List pars, Method generic)
            : base(parent, name, flags, facets, lineNum)
        {
            List fparams = pars.ro();
              if ((flags & (FConst.Static|FConst.Ctor)) == 0)
              {
            object[] temp = new object[pars.sz()+1];
            temp[0] = new Param("this", parent, 0);
            pars.copyInto(temp, 1, pars.sz());
            fparams = new List(Sys.ParamType, temp);
              }

              this.m_func = new MethodFunc(this, returns, fparams);
              this.m_params = pars;
              this.m_inheritedReturns = inheritedReturns;
              this.m_mask = (generic != null) ? 0 : toMask(parent, returns, pars);
              this.m_generic = generic;
        }
Exemple #8
0
 public string readStrToken(Long max, Func f)
 {
     return m_in.readStrToken(FanInt.Chunk, f);
 }
Exemple #9
0
Fichier : List.cs Projet : xored/f4
 public List map(Func f)
 {
     Type r = f.returns();
       if (r == Sys.VoidType) r = Sys.ObjType.toNullable();
       List acc = new List(r, (int)size());
       for (int i=0; i<m_size; i++)
     acc.add(f.call(m_values[i], i));
       return acc;
 }
Exemple #10
0
Fichier : List.cs Projet : xored/f4
 public object eachWhile(Func f)
 {
     for (int i=0; i<m_size; i++)
       {
     object r = f.call(m_values[i], i);
     if (r != null) return r;
       }
       return null;
 }
Exemple #11
0
 public void eachLine(Func f)
 {
     m_in.eachLine(f);
 }
Exemple #12
0
 public object reduce(object reduction, Func f)
 {
     IDictionaryEnumerator en = m_map.GetEnumerator();
       while (en.MoveNext())
       {
     object key = en.Key;
     object val = en.Value;
     reduction = f.call(reduction, val, key);
       }
       return reduction;
 }
Exemple #13
0
Fichier : List.cs Projet : xored/f4
 public object find(Func f)
 {
     for (int i=0; i<m_size; i++)
     if (f.call(m_values[i], i) == Boolean.True)
       return m_values[i];
       return null;
 }
Exemple #14
0
 public Map findAll(Func f)
 {
     Map acc = new Map(m_type);
       if (this.ordered()) acc.ordered(true);
       if (this.caseInsensitive()) acc.caseInsensitive(true);
       IDictionaryEnumerator en = m_map.GetEnumerator();
       while (en.MoveNext())
       {
     object key = en.Key;
     object val = en.Value;
     if (f.call(val, key) == Boolean.True)
       acc.set(key, val);
       }
       return acc;
 }
Exemple #15
0
 public string join(string sep, Func f)
 {
     int size = (int)this.size();
       if (size == 0) return "";
       StringBuilder s = new StringBuilder(32+size*32);
       IDictionaryEnumerator en = m_map.GetEnumerator();
       while (en.MoveNext())
       {
     object key = en.Key;
     object val = en.Value;
     if (s.Length > 0) s.Append(sep);
     if (f == null)
       s.Append(key).Append(": ").Append(val);
     else
       s.Append(f.call(val, key));
       }
       return s.ToString();
 }
Exemple #16
0
 public object eachWhile(Func f)
 {
     IDictionaryEnumerator en = m_map.GetEnumerator();
       while (en.MoveNext())
       {
     object key = en.Key;
     object val = en.Value;
     object r = f.call(val, key);
     if (r != null) return r;
       }
       return null;
 }
Exemple #17
0
 public bool any(Func f)
 {
     if (m_map.Count == 0) return false;
       IDictionaryEnumerator en = m_map.GetEnumerator();
       while (en.MoveNext())
       {
     object key = en.Key;
     object val = en.Value;
     if (f.call(val, key) == Boolean.True)
       return true;
       }
       return false;
 }
Exemple #18
0
Fichier : List.cs Projet : xored/f4
        public string join(string sep, Func f)
        {
            if (m_size == 0) return "";

              if (m_size == 1)
              {
            object v = m_values[0];
            if (f != null) return (string)f.call(v, 0);
            if (v == null) return "null";
            return toStr(v);
              }

              StringBuilder s = new StringBuilder(32+m_size*32);
              for (int i=0; i<m_size; i++)
              {
            if (i > 0) s.Append(sep);
            if (f == null)
            {
              if (m_values[i] == null) s.Append("null");
              else s.Append(m_values[i]);
            }
            else
            {
              s.Append(f.call(m_values[i], i));
            }
              }
              return s.ToString();
        }
Exemple #19
0
Fichier : List.cs Projet : xored/f4
 public Long findIndex(Func f)
 {
     for (int i=0; i<m_size; ++i)
       {
     long pos = i;
     if (f.call(m_values[i], pos) == Boolean.True)
       return Long.valueOf(pos);
       }
       return null;
 }
Exemple #20
0
Fichier : List.cs Projet : xored/f4
 public List findAll(Func f)
 {
     List acc = new List(m_of, m_size);
       for (int i=0; i<m_size; i++)
     if (f.call(m_values[i], i) == Boolean.True)
       acc.add(m_values[i]);
       return acc;
 }
Exemple #21
0
 //////////////////////////////////////////////////////////////////////////
 // Iterators
 //////////////////////////////////////////////////////////////////////////
 public void each(Func f)
 {
     IDictionaryEnumerator en = m_map.GetEnumerator();
       while (en.MoveNext())
       {
     object key = en.Key;
     object val = en.Value;
     f.call(val, key);
       }
 }
Exemple #22
0
Fichier : List.cs Projet : xored/f4
 public object max(Func f)
 {
     if (m_size == 0) return null;
       IComparer c = toComparer(f);
       object max = m_values[0];
       for (int i=1; i<m_size; i++)
     if (c.Compare(m_values[i], max) > 0)
       max = m_values[i];
       return max;
 }
Exemple #23
0
 public object find(Func f)
 {
     IDictionaryEnumerator en = m_map.GetEnumerator();
       while (en.MoveNext())
       {
     object key = en.Key;
     object val = en.Value;
     if (f.call(val, key) == Boolean.True)
       return val;
       }
       return null;
 }
Exemple #24
0
Fichier : List.cs Projet : xored/f4
 public object min(Func f)
 {
     if (m_size == 0) return null;
       IComparer c = toComparer(f);
       object min = m_values[0];
       for (int i=1; i<m_size; i++)
     if (c.Compare(m_values[i], min) < 0)
       min = m_values[i];
       return min;
 }
Exemple #25
0
 public object getOrAdd(object key, Func valFunc)
 {
     if (containsKey(key)) return get(key);
       object val = valFunc.call(key);
       add(key, val);
       return val;
 }
Exemple #26
0
Fichier : List.cs Projet : xored/f4
 public object reduce(object reduction, Func f)
 {
     for (int i=0; i<m_size; i++)
     reduction = f.call(reduction, m_values[i], i);
       return reduction;
 }
Exemple #27
0
 public Map map(Func f)
 {
     Type r = f.returns();
       if (r == Sys.VoidType) r = Sys.ObjType.toNullable();
       Map acc = new Map(m_type.m_k, r);
       if (this.ordered()) acc.ordered(true);
       if (this.caseInsensitive()) acc.caseInsensitive(true);
       IDictionaryEnumerator en = m_map.GetEnumerator();
       while (en.MoveNext())
       {
     object key = en.Key;
     object val = en.Value;
     acc.set(key, f.call(val, key));
       }
       return acc;
 }
Exemple #28
0
Fichier : List.cs Projet : xored/f4
 public List sort(Func f)
 {
     modify();
       Array.Sort(m_values, 0, m_size, toComparer(f));
       return this;
 }
Exemple #29
0
 public Map setList(List list, Func f)
 {
     modify();
       if (f == null)
       {
     for (int i=0; i<list.sz(); ++i)
       set(list.get(i), list.get(i));
       }
       else if (f.@params().sz() == 1)
       {
     for (int i=0; i<list.sz(); ++i)
       set(f.call(list.get(i)), list.get(i));
       }
       else
       {
     for (int i=0; i<list.sz(); ++i)
       set(f.call(list.get(i), i), list.get(i));
       }
       return this;
 }
Exemple #30
0
 public static ActorPool make(Func itBlock)
 {
     ActorPool self = new ActorPool();
       make_(self, itBlock);
       return self;
 }