FSharpAux


Seq

Namespace: FSharpAux
Attributes:
[<AutoOpen>]

Nested types and modules

TypeDescription
JoinOption<'a, 'b, 'c>
ModuleDescription
Double

Seq module extensions specialized for seq

Functions and values

Function or valueDescription
appendSingleton s value
Signature: s:seq<'T> -> value:'T -> seq<'T>
Type parameters: 'T

Adds a value to the back of a sequence

consSingleton s value
Signature: s:seq<'T> -> value:'T -> seq<'T>
Type parameters: 'T

Adds a value to the front of a sequence

countDistinctBy keyf sequence
Signature: keyf:('T -> 'Key) -> sequence:seq<'T> -> seq<'Key * int>
Type parameters: 'T, 'Key

Applies a keyfunction to each element and counts the amount of each distinct resulting key

countIf f input
Signature: f:('?8173 -> bool) -> input:seq<'?8173> -> int
Type parameters: '?8173

Iterates over elements of the input sequence and increase the counter if the function returens true

foldi f acc sequence
Signature: f:(int -> 'State -> 'T -> 'State) -> acc:'State -> sequence:seq<'T> -> 'State
Type parameters: 'State, 'T
groupAfter f input
Signature: f:('?8167 -> bool) -> input:seq<'?8167> -> seq<'?8167 list>
Type parameters: '?8167

Iterates over the elements of the input sequence and groups adjacent elements. A new group is started after the specified predicate holds about the element of the sequence (and at the beginning of the iteration).

groupsOfAtMost size s
Signature: size:int -> s:seq<'v> -> seq<'v list>
Type parameters: 'v

Break sequence into n-element subsequences

groupWhen f input
Signature: f:('a -> bool) -> input:seq<'a> -> seq<seq<'a>>
Type parameters: 'a

Iterates over elements of the input sequence and groups adjacent elements. A new group is started when the specified predicate holds about the element of the sequence (and at the beginning of the iteration).

For example: Seq.groupWhen isOdd [3;3;2;4;1;2] = seq [[3]; [3; 2; 4]; [1; 2]]

headOrDefault defaultValue s
Signature: defaultValue:'?8181 -> s:seq<'?8181> -> '?8181
Type parameters: '?8181

Returns head of a seq or default value if seq is empty

initRepeatValue length value
Signature: length:int -> value:'?8160 -> seq<'?8160>
Type parameters: '?8160

Initialize a sequence of length and repeated value (like R! repeat : but swapped input)

initRepeatValues length values
Signature: length:int -> values:seq<'?8162> -> seq<'?8162>
Type parameters: '?8162

Initialize a sequence of length and repeated values (like R! repeat: but swapped input)

joinBy joinOption keyf1 keyf2 s1 s2
Signature: joinOption:JoinOption<'a,'b,'c> -> keyf1:('a -> 'key) -> keyf2:('b -> 'key) -> s1:seq<'a> -> s2:seq<'b> -> seq<'c>
Type parameters: 'a, 'b, 'c, 'key
joinCross(s)
Signature: s:seq<'a option * 'b option> -> seq<'a * 'b>
Type parameters: 'a, 'b
joinLeft(s)
Signature: s:seq<'a option * 'b option> -> seq<'a * 'b>
Type parameters: 'a, 'b
joinRight(s)
Signature: s:seq<'a option * 'b option> -> seq<'a * 'b>
Type parameters: 'a, 'b
pivotize(...)
Signature: aggregation:(seq<'T> -> 'A) -> defaultValue:'A -> keyList:seq<'key> -> valueList:seq<'key * seq<'T>> -> seq<'A>
Type parameters: 'T, 'A, 'key
sortByDesc f s
Signature: f:('a -> 'b) -> s:IEnumerable<'a> -> IOrderedEnumerable<'a>
Type parameters: 'a, 'b

Sorts sequence in descending order

tryHead(s)
Signature: s:seq<'?8179> -> '?8179 option
Type parameters: '?8179

Returns head of a seq as option or None if seq is empty

unzip(input)
Signature: input:seq<'?8183 * '?8184> -> seq<'?8183> * seq<'?8184>
Type parameters: '?8183, '?8184

Splits a sequence of pairs into two sequences

unzip3(input)
Signature: input:seq<'?8186 * '?8187 * '?8188> -> seq<'?8186> * seq<'?8187> * seq<'?8188>
Type parameters: '?8186, '?8187, '?8188

Splits a sequence of triples into three sequences

Fork me on GitHub