Preview:
const pluckDeep = key => obj => key.split('.').reduce((accum, key) => accum[key], obj)
​
const compose = (...fns) => res => fns.reduce((accum, next) => next(accum), res)
​
const unfold = (f, seed) => {
  const go = (f, seed, acc) => {
    const res = f(seed)
    return res ? go(f, res[1], acc.concat([res[0]])) : acc
  }
  return go(f, seed, [])
}
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter