public Generator(ImmList <T> back, IEnumerable <T> generator, IEnumerator <T> state, bool isEager) { Back = back; _generator = generator; _state = state; IsEager = isEager; }
static void Main(string[] args) { ImmList <string> names = new[] { "Bob", "Frank", "Joe", "Steve", "Allen", "Greg", "Mike", "Joey", "Jill", "Marcus", "Alex" }.ToImmList(); string[] names2 = new[] { "Bob", "Alex", "Jill", "Fred", "Linda" }; ImmList <KeyValuePair <char, IEnumerable <string> > > namesByFirstLetter = from name in names where !name.StartsWith("M") let firstLetter = name[0] group name by firstLetter into namesByThisLetter orderby namesByThisLetter.Key select namesByThisLetter; ImmList <string> peopleInBothLists = from name in names join name2 in names2 on name equals name2 orderby name select name; }
public ImmPriorityQueue <T, TPriority> Add(T item) { var priority = Appraise(item); var list = Inner.TryGet(priority); var newList = list.IsSome ? list.Value.AddLast(item) : ImmList.Of(item); return(Wrap(Inner.Set(priority, newList))); }
private void IterateTill(ref int index) { for (; index >= 0; index--) { if (!_state.MoveNext()) { _isOver = true; return; } Back = Back.AddLast(_state.Current); } }
static void Main(string[] args) { ImmList <int> list = ImmList.Of(0, 1, 2); //access to the ends: list = list.AddLast(3).AddFirst(-1); list = list.AddLastRange(new[] { 4, 5, 6 }); list = list.AddFirstRange(list); list = list.RemoveLast().RemoveFirst(); //indexing: int firstItem = list[0]; list = list.Update(0, firstItem + 1); list = list.Insert(0, firstItem); //slices: ImmList <int> sublist = list[1, 3]; //slices in range [1, 3], inclusive. ImmSet <int> set = ImmSet.Of(0, 1, 2); //add and remove: set = set.Add(3).Remove(0); //set-theoretic operations: set = set.Union(new[] { 5, 6 }); set = set.Except(new[] { 5 }); set = set.Intersect(set); ImmMap <int, int> map = ImmMap.Of(Kvp.Of(1, 1), Kvp.Of(2, 2), Kvp.Of(3, 3)); map = map.Add(4, 4); map = map.Remove(2); int value = map[1]; }
private Generator New( ImmList <T> back = null, IEnumerable <T> generator = null, IEnumerator <T> state = null, bool?isEager = null) { return(new Generator(back ?? Back, generator ?? _generator, state ?? _state, isEager ?? IsEager)); }
/// <summary> /// Initializes a new instance of the <see cref="T:System.Object"/> class. /// </summary> private ImmLazyList(ImmList <Block> inner) { _inner = inner; }
public Evaluated(ImmList <T> inner) { _inner = inner; }