Skip to content

Instantly share code, notes, and snippets.

@theikkila
Created June 13, 2017 14:03
Show Gist options
  • Save theikkila/773932473cdc5d4e0ab6866700460a8b to your computer and use it in GitHub Desktop.
Save theikkila/773932473cdc5d4e0ab6866700460a8b to your computer and use it in GitHub Desktop.
Ramda receipts
const partitionBy = (f, collection) => {
const r = collection.reduce(({result, currentPartition, partitions}, item) => {
const newResult = f(item)
if (result != undefined && result != newResult) {
return {result: newResult, currentPartition: [item], partitions: R.append(currentPartition, partitions)}
}
return {result: newResult, currentPartition: R.append(item, currentPartition), partitions}
}, {result: undefined, currentPartition:[], partitions: []})
return R.append(r.currentPartition, r.partitions)
}
// partitionBy works like Clojures partition-by
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment