View everyfloat.js
const nextafter = require('nextafter') | |
for (let i = -Number.MAX_VALUE; i !== Infinity; i = nextafter(i, Infinity)) { | |
console.log(i) | |
} |
View high-water-mark-roman.js
// What is the smallest number which, when expressed in Roman numerals, won't | |
// fit in a 280-character Tweet? | |
// <https://twitter.com/Revolvolutionry/status/1165616879009816576> | |
const { arabicToRoman, romanToArabic } = require('big-roman') | |
// The entry at index `i` in this array is the smallest Roman numeral | |
// of length `i` | |
const results = [''] | |
const stopAt = 281 |
View roman.js
// No bounds/type checking | |
// No support for the overbar extension for numbers past 3999 | |
const banks = [ | |
['', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'], | |
['', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'], | |
['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'], | |
['', 'M', 'MM', 'MMM'] | |
] |
View quine.js
(s => console.log(s + '\n(' + JSON.stringify(s) + ')')) | |
("(s => console.log(s + '\\n(' + JSON.stringify(s) + ')'))") |
View index.js
let P=exports.P=(t,e,r=t=>typeof t==typeof P,c,o=t=>c=t,h=(t,e)=>{try{e=t(e),l==e?c():e===Object(e)&&r(t=e.then)?t.call(e,t=>e&&h(e=>t,e=0),t=>e&&o([t],e=0)):o([e,1])}catch(t){o([t])}},l={r:(c,P)=>setTimeout(l=>r(P=c[1]?t:e)?h(P,c[0]):o(c)),then:(t,e,r=P(t,e),h=o)=>(c?r.r(c):o=t=>r.r(t,h(t)),r)})=>l |
View doubleEquals.js
'use strict' | |
// <http://www.ecma-international.org/ecma-262/5.1/#sec-8> Type | |
var type = function (x) { | |
// The `typeof` operator gives us almost what we want | |
return ( | |
typeof x === 'function' ? 'object' | |
: x === null ? 'null' | |
: typeof x | |
) |
View variadic.js
/** | |
Analogous to Array.prototype.map but for objects. If you | |
REALLY don't want to modify Object.prototype you can | |
modify this into a regular function `objectMap(obj, f)` I GUESS | |
but it doesn't affect the basic idea of what happens below | |
*/ | |
Object.prototype.map = function(f) { | |
const mapped = {}; | |
Object.keys(this).forEach(key => { | |
mapped[key] = f(this[key], key, this); |
View daylengths.js
"use strict"; | |
var tai = require("t-a-i"); | |
var prevlen = undefined; | |
var prevcount = 0; | |
for(var d = Date.UTC(1961, 0, 1); d < Date.UTC(2017, 0, 1); d += 86400000) { | |
var d2 = d + 86400000; | |
var len = tai.unixToAtomic(d2) - tai.unixToAtomic(d); | |
len = Math.round(len * 10000) / 10000; |
View yearlengths.js
"use strict" | |
const tai = require("t-a-i") | |
for (let y = 1961; y <= new Date().getFullYear(); y++) { | |
const start = tai.unixToAtomic(Date.UTC(y, 0, 1)) | |
const end = tai.unixToAtomic(Date.UTC(y + 1, 0, 1)) | |
console.log(y, end - start) | |
} |
View indent.py
if True: | |
pass | |
if True: | |
if True: | |
if True: | |
if True: | |
if True: | |
if True: | |
if True: | |
print("yup, syntactically valid Python") |
NewerOlder