Cleaned up the current snippets for consistency and minor problems, added multiple tags to most of them, archived a few.
20 lines
495 B
Markdown
20 lines
495 B
Markdown
### flip
|
|
|
|
Flip takes a function as an argument, then makes the first argument the last.
|
|
|
|
Return a closure that takes variadic inputs, and splices the last argument to make it the first argument before applying the rest.
|
|
|
|
```js
|
|
const flip = fn => (...args) => fn(args.pop(), ...args);
|
|
```
|
|
|
|
```js
|
|
let a = { name: 'John Smith' };
|
|
let b = {};
|
|
const mergeFrom = flip(Object.assign);
|
|
let mergePerson = mergeFrom.bind(null, a);
|
|
mergePerson(b); // == b
|
|
b = {};
|
|
Object.assign(b, a); // == b
|
|
```
|