public static HMap <A, HMap <B, HMap <C, HMap <D, V> > > > MapRemoveT <A, B, C, D, T, V>(this HMap <A, HMap <B, HMap <C, HMap <D, T> > > > self, Func <HMap <D, T>, HMap <D, V> > map) { return(self.Map((ka, va) => va.Map((kb, vb) => vb.Map((kc, vc) => map(vc)) .Filter((kc, vc) => vc.Count > 0)) .Filter((kb, vb) => vb.Count > 0)) .Filter((ka, va) => va.Count > 0)); }
public static HMap <A, HMap <B, HMap <C, HMap <D, T> > > > FilterT <A, B, C, D, T>(this HMap <A, HMap <B, HMap <C, HMap <D, T> > > > self, Func <T, bool> pred) { return(self.Map((ka, va) => va.FilterT(pred))); }
public static HMap <A, HMap <B, HMap <C, HMap <D, V> > > > MapT <A, B, C, D, T, V>(this HMap <A, HMap <B, HMap <C, HMap <D, T> > > > self, Func <T, V> map) { return(self.Map((ka, va) => va.MapT(map))); }
public static HMap <A, HMap <B, V> > MapRemoveT <A, B, T, V>(this HMap <A, HMap <B, T> > self, Func <HMap <B, T>, HMap <B, V> > map) { return(self.Map((ka, va) => map(va)) .Filter((ka, va) => va.Count > 0)); }
public static HMap <K, U> Select <K, V, U>(this HMap <K, V> self, Func <K, V, U> mapper) => self.Map(mapper);