| |
| function increment(x) { |
| return sum(x, 1); |
| } |
| |
| |
| function sum(x, y) { |
| return x + y; |
| } |
| |
| function increment(x) { |
| return sum(x, 1); |
| } |
| |
| |
| function sum(x, y) { |
| return x + y; |
| } |
| |
| function increment(x) { |
| return sum(x, 1); |
| } |
| |
| |
| function sum(x, y) { |
| return x + y; |
| } |
| |
| function increment(x) { |
| return sum(x, 1); |
| } |
| |
| |
| function sum(x, y) { |
| return x + y; |
| } |
| function unary(fn) { |
| return function one(arg) { |
| return fn(arg); |
| } |
| } |
| |
| function binary(fn) { |
| return function two(arg1, arg2) { |
| return fn(arg1, arg2); |
| } |
| } |
| |
| function f(...args) { |
| return args; |
| } |
| |
| var g = unary(f); |
| var h = binary(f); |
| |
| g(1, 2, 3, 4) |
| f(1, 2, 3, 4) |
| function unary(fn) { |
| return function one(arg) { |
| return fn(arg); |
| } |
| } |
| |
| function binary(fn) { |
| return function two(arg1, arg2) { |
| return fn(arg1, arg2); |
| } |
| } |
| |
| function f(...args) { |
| return args; |
| } |
| |
| var g = unary(f); |
| var h = binary(f); |
| |
| g(1, 2, 3, 4) |
| f(1, 2, 3, 4) |
| function unary(fn) { |
| return function one(arg) { |
| return fn(arg); |
| } |
| } |
| |
| function binary(fn) { |
| return function two(arg1, arg2) { |
| return fn(arg1, arg2); |
| } |
| } |
| |
| function f(...args) { |
| return args; |
| } |
| |
| var g = unary(f); |
| var h = binary(f); |
| |
| g(1, 2, 3, 4) |
| f(1, 2, 3, 4) |
| function unary(fn) { |
| return function one(arg) { |
| return fn(arg); |
| } |
| } |
| |
| function binary(fn) { |
| return function two(arg1, arg2) { |
| return fn(arg1, arg2); |
| } |
| } |
| |
| function f(...args) { |
| return args; |
| } |
| |
| var g = unary(f); |
| var h = binary(f); |
| |
| g(1, 2, 3, 4) |
| f(1, 2, 3, 4) |
| function flip(fn) { |
| return function flipped(arg1, arg2, ...args) { |
| return fn(arg2, arg1, ...args); |
| } |
| } |
| |
| function f(...args) { |
| return args; |
| } |
| |
| var g = flip(f); |
| g(1, 2, 3, 4) |
| function reverseArgs(fn) { |
| return function reversed(...args) { |
| return fn(...args.reverse()); |
| } |
| } |
| |
| function f(...args) { |
| return args; |
| } |
| |
| var g = reverseArgs(f); |
| g(1, 2, 3, 4) |
| function isOdd(v) { |
| return v % 2 == 1; |
| } |
| |
| function isEven(v) { |
| return !isOdd(v); |
| } |
| |
| isEven(4) |
| function isOdd(v) { |
| return v % 2 == 1; |
| } |
| |
| function isEven(v) { |
| return !isOdd(v); |
| } |
| |
| isEven(4) |
| function not(fn) { |
| return function negated(...args) { |
| return !fn(...args); |
| } |
| } |
| |
| function isOdd(v) { |
| return v % 2 == 1; |
| } |
| |
| const isEven = not(isOdd); |
| |
| isEven(4) |
| function not(fn) { |
| return function negated(...args) { |
| return !fn(...args); |
| } |
| } |
| |
| function isOdd(v) { |
| return v % 2 == 1; |
| } |
| |
| const isEven = not(isOdd); |
| |
| isEven(4) |
| function not(fn) { |
| return function negated(...args) { |
| return !fn(...args); |
| } |
| } |
| |
| function isOdd(v) { |
| return v % 2 == 1; |
| } |
| |
| const isEven = not(isOdd); |
| |
| isEven(4) |