In JavaScript, you can make a right-variadic function by gathering parameters. For example:
const abccc = (a, b, ...c) => {
console.log(a);
console.log(b);
console.log(c);
};
abccc(1, 2, 3, 4, 5)| var fn = function reddit () { console.log(reddit); } | |
| fn() | |
| //=> [Function: reddit] | |
| console.log(reddit); | |
| //=> ReferenceError: reddit is not defined |
| const arrayIterator = (array) => { | |
| let i = 0; | |
| return () => { | |
| const done = i < array.length; | |
| return { | |
| done, | |
| value: done ? undefined : array[i++] | |
| } |
| const sorted = arr => { | |
| const length = arr.length; | |
| let unsorted = new Array(length), | |
| sorted = new Array(length); | |
| const destructiveSort = (unsorted, sorted, offset, length) => { | |
| if (length === 1) { | |
| sorted[offset] = unsorted[offset]; | |
| } |
| const div = (verbed, numerator, denominator) => | |
| `${numerator} ${verbed} ${denominator} is ${numerator/denominator}` | |
| div('divided by', 1, 3) | |
| //=> 1 divided by 3 is 0.3333333333333333 | |
| const anyPartialApplication = (() => { | |
| const placeholder = {}, | |
| anyPartialApplication = (fn, ...template) => { | |
| let remainingArgIndex = 0; |
In JavaScript, you can make a right-variadic function by gathering parameters. For example:
const abccc = (a, b, ...c) => {
console.log(a);
console.log(b);
console.log(c);
};
abccc(1, 2, 3, 4, 5)| something = if condition | |
| value-if-truthy | |
| else | |
| value-if-falsy |
(from Hilbert's Grand JavaScript School)
Bertie goes home, exhausted, and dreams that having graduated everyone at the end of Day Five, things are busier than ever. In his dreams he imagines an infinite number of galactic superclusters, each containing an infinite number of galaxies, each containing an infinite number of stars, each containing an infinite number of worlds, each containing an infinite number of oceans, each containing an infinite number of aircraft carriers, each containing an infinite number of buses, each containing an infinite number of students.
He awakens and reasons that what he is dealing with are powers of infinity. A simple infinity is infinity to the first power. Two infinities (buses and students) is infinity to the second power. Three infinities (aircraft carriers, buses, and students) is infinity to the third power. And so forth up to galactic superclusters, infinity to the eighth power.
Because combinators like this:
var __slice = Array.prototype.slice;
function invoke (fn) {
var args = __slice.call(arguments, 1);
return function (instance) {
return fn.apply(instance, args)| const SecretDecoderRing = { | |
| encode: function (plaintext) { | |
| return plaintext | |
| .split('') | |
| .map( char => char.charCodeAt() ) | |
| .map( code => code + 1 ) | |
| .map( code => String.fromCharCode(code) ) | |
| .join(''); | |
| }, | |
| decode: function (cyphertext) { |
JavaScript Allongé has over 400 pages and many photographs. For this reason, the .mobi version of the book is too big to be sent to your Kindle via email.
If you wish to read JavaScript Allongé on your Kindle, please: