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; }
public static Serializable make(Func func) { Serializable self = new Serializable(); if (func != null) { func.enterCtor(self); func.call(self); func.exitCtor(); } return self; }
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()]); } }
public static Deprecated make(Func func) { Deprecated self = new Deprecated(); if (func != null) { func.enterCtor(self); func.call(self); func.exitCtor(); } return self; }
public static FacetMeta make(Func func) { FacetMeta self = new FacetMeta(); if (func != null) { func.enterCtor(self); func.call(self); func.exitCtor(); } return self; }
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(); }
/// <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; }
public string readStrToken(Long max, Func f) { return m_in.readStrToken(FanInt.Chunk, f); }
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; }
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; }
public void eachLine(Func f) { m_in.eachLine(f); }
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; }
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; }
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; }
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(); }
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; }
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; }
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(); }
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; }
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; }
////////////////////////////////////////////////////////////////////////// // 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); } }
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; }
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; }
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; }
public object getOrAdd(object key, Func valFunc) { if (containsKey(key)) return get(key); object val = valFunc.call(key); add(key, val); return val; }
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; }
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; }
public List sort(Func f) { modify(); Array.Sort(m_values, 0, m_size, toComparer(f)); return this; }
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; }
public static ActorPool make(Func itBlock) { ActorPool self = new ActorPool(); make_(self, itBlock); return self; }