All files group.js

96.15% Statements 25/26
100% Branches 0/0
93.75% Functions 15/16
100% Lines 11/11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43            5x       5x       5x       5x 5x       5x       5x       5x       30x       5x   5x  
// requires [iterify](iterable.html)
import { iterify, } from './iterable';
import { first, rest, } from './accessors';
 
// **tuple** `:: a -> a -> [a]`  
// returns a [val, key] Iterable<a>
export const tuple = val => key => [ key, val, ];
 
// **tupleBin** `:: (a, a) -> [a]`  
// returns a [val, key] Iterable<a>
export const tupleBin = (v, k) => tuple(v)(k);
 
// **triple** `:: a -> a -> a -> [a]`  
// returns a [val, key0, key1] Iterable<a>
export const triple = val => key0 => key1 => [ key0, key1, val, ];
 
// **flatten** `:: Iterable<a> -> Iterable<a> -> [a]`  
// returns an Iterable<a> of the contents of two iterables
export const flatten = c0 => c1 =>
[ ...iterify(c0), ...iterify(c1), ];
 
// **flattenBin** `:: (Iterable<a>, Iterable<a>) -> [a]`  
// returns an Iterable<a> of the contents of two iterables
export const flattenBin = (c0, c1) => flatten(c0)(c1);
 
// **flatTuple** `:: a -> [a] -> [a]`  
// concatenates an object and an iterable
export const flatTuple = c0 => c1 => [ c0, ...iterify(c1), ];
 
// **flatTupleBin** `:: (Iterable<a>, [a]) -> [a]`  
// concatenates an object and an iterable
export const flatTupleBin = (c0, c1) => flatTuple(c0)(c1);
 
// **append** `:: Iterable<a> -> a -> [a]`  
// concatenates an iterable and an object
export const append = coll => val => [ ...iterify(coll), val, ];
 
// **appendBin** `:: (Iterable<a>,a) -> [a]`  
// concatenates an iterable and an object
export const appendBin = (c, v) => append(c)(v);
 
export const turn = coll => append(rest(coll))(first(coll));