Build an infinite stream by calling repeatedly a function.
Stream.continually(() => 1).take(4);
=> Stream.of(1,1,1,1)
Stream.continually(Math.random).take(2);
=> Stream.of(0.49884723907769635, 0.3226548779864311)
The empty stream
Curried type guard for Stream. Sometimes needed also due to https://github.com/Microsoft/TypeScript/issues/20218
Vector.of(Stream.of(1), Stream.empty<number>())
.filter(Stream.isEmpty)
=> Vector.of(Stream.empty<number>())
Curried type guard for Stream. Sometimes needed also due to https://github.com/Microsoft/TypeScript/issues/20218
Vector.of(Stream.of(1), Stream.empty<number>())
.filter(Stream.isNotEmpty)
.map(s => s.head().get()+1)
=> Vector.of(2)
Build an infinite stream from a seed and a transformation function.
Stream.iterate(1, x => x*2).take(4);
=> Stream.of(1,2,4,8)
Create a Stream with the elements you give.
Build a stream from any iterable, which means also an array for instance.
the item type
Dual to the foldRight function. Build a collection from a seed. Takes a starting element and a function. It applies the function on the starting element; if the function returns None, it stops building the list, if it returns Some of a pair, it adds the first element to the result and takes the second element as a seed to keep going.
Stream.unfoldRight(
10, x=>Option.of(x)
.filter(x => x!==0)
.map<[number,number]>(x => [x,x-1]));
=> Stream.of(10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
Combine any number of iterables you give in as parameters to produce a new collection which combines all, in tuples. For instance:
Stream.zip(Stream.of(1,2,3), ["a","b","c"], LinkedList.of(8,9,10))
=> Stream.of([1,"a",8], [2,"b",9], [3,"c",10])
The result collection will have the length of the shorter of the input iterables. Extra elements will be discarded.
Also see the non-static version ConsStream.zip, which only combines two collections.
A is the type of the tuple that'll be generated
([number,string,number]
for the code sample)
Generated using TypeDoc
Holds the "static methods" for Stream