| function flipFn(fn){ | |
| return (...input) => { | |
| if (input.length === 1){ | |
| return holder => fn(holder, input[ 0 ]) | |
| } else if (input.length === 2){ | |
| return fn(input[ 1 ], input[ 0 ]) | |
| } else if (input.length === 3){ | |
| return fn( | |
| input[ 1 ], input[ 0 ], input[ 2 ] | |
| ) | |
| } else if (input.length === 4){ | |
| return fn( | |
| input[ 1 ], input[ 0 ], input[ 2 ], input[ 3 ] | |
| ) | |
| } | |
| throw new Error('R.flip doesn\'t work with arity > 4') | |
| } | |
| } | |
| export function flip(fn){ | |
| return flipFn(fn) | |
| } |