UNPKG

@lou.codes/iterables

Version:
21 lines (20 loc) 672 B
import { flat } from "./flat.js"; import { initial } from "./initial.js"; import { repeat } from "./repeat.js"; import { zip } from "./zip.js"; /** * Add the given `separator` between each element of the given iterable. * * @category Generators * @example * ```typescript * const intersperseComma = intersperse(","); * intersperseComma([1, 2, 3]); // [1, ",", 2, ",", 3] * ``` * @param separator Separator to add between each element. * @returns Curried function with `separator` in context. */ export const intersperse = separator => { const repeatSeparator = repeat(Infinity)(separator); return iterable => initial(flat(zip(iterable)(repeatSeparator))); };