999 buzz=Three Name: Anonymous 2021-01-22 4:27 nextperm=20210122472
β§ βΌΌ π πΉ π» die +0m #362 fizz=362 inhour=47 inday=93 prime=2441 π» πΉ π βΌΌ β§
gcd = 1 = (-129)*999 + 356*362
fib = 1244666864935793005828156005589143096022236302705537193166716344690085611761
e ~ 1957472231827739495902165191 / 720113790753404797929429296 = 2.71828182845904523536028747135266249775724709369995959_2602749
Added the elitists' linear recipe for steamed broccoli
https://textboard.org/prog/222 as a processing step
>>110 to compute successive rational approximations of e and attach them to the 362
>>8 "die" posts.
https://dis.tinychan.net/read/prog/1582047203 Don't ask me why the math part works, it's magic and you can go ask the elitists. Raised the arrow function nesting level to twelve
>>107. [parsetime, buttonnum, rmslinks, timedelta, count, fizzbuzz, hourdaily, primes, hearts, gcd, fibonacci, broccoli, nextperm]
posts code in /prog/
(processors => Array.from (document.querySelectorAll ("div.post > div.body")).filter (e => "die" == e.innerText).forEach (e => (elemstate => processors.forEach (p => p (e, elemstate))) ({}))) ([
(e, estate) => (m => { estate['posttime'] = m [0]; estate['day'] = parseInt (m [1], 10); estate['hour'] = parseInt (m [2], 10); estate['min'] = parseInt (m [3], 10); }) (e.parentNode.querySelector ('span.post_time').innerText.match (/^2021-01-(\d+) (\d+):(\d+)$/)),
(e, estate) => (btn => { estate['button'] = btn; estate['buttonnum'] = parseInt (btn.innerText, 10); }) (e.parentNode.querySelector ('button.num')),
(rmsarray => (e, estate) => { e.innerHTML = "<a class='die-link' href='#" + rmsarray [Math.floor (rmsarray.length * Math.random ())].parentNode.getAttribute ("id") + "'>" + e.innerHTML.trim () + "</a>"; }) (Array.from (document.querySelectorAll ("div.post > div.body")).filter (e => /https?:\/\/(www[.])?stallman[.]org\/archives\//.test (e.innerHTML))),
(procstate => (e, estate) => ((t, last) => { if (last >= 0) { ((h, m) => { e.innerHTML += ' +' + (h > 0 ? h + 'h' : '') + m + 'm'; }) ((t - last - (t - last) % 60) / 60, (t - last) % 60); } procstate['last'] = t; }) ((estate['day'] * 24 + estate['hour']) * 60 + estate['min'], procstate['last'])) ({last: -1}),
(procstate => (e, estate) => { e.innerHTML += ' #' + (estate['diecount'] = (++procstate['count'])); }) ({count: 0}),
((cycle, fbval, spec) => ((fb, fbn) => (e, estate) => { e.innerHTML += ' fizz=' + fb.next ().value; estate['button'].innerHTML += ' buzz=' + fbn (estate['buttonnum']); }) (function* () { const gens = spec.map (cycle); for (let k = 1; ; k++) { yield fbval (k, gens.map (g => g.next ().value)); } } (), n => fbval (n, spec.map (([div, s]) => n % div == 0 ? s : "")))) (function* ([n, s]) { for (;;) { for (let k = 1; k < n; k++) { yield ""; } yield s; } }, (n, vals) => { const s = vals.join (""); return s === "" ? n.toString () : s; }, [[3, "Three"], [5, "Five"], [7, "Seven"], [11, "Eleven"]]),
((procstate, spec) => (e, estate) => { e.innerHTML += spec.map (([label, keyfun]) => (key => (count => { procstate[key] = count + 1; return ' ' + label + '=' + (count + 1); }) (procstate[key] ?? 0)) (keyfun (estate))).join (''); }) ({}, [['inhour', estate => 'd' + estate['day'] + 'h' + estate['hour']], ['inday', estate => 'd' + estate['day']]]),
((base, filter, hasmod) => (primes => (e, estate) => { e.innerHTML += ' prime=' + primes.next ().value; }) (function* () { for (let p = base (2), x = p.next ().value; ; p = filter (hasmod (x), p), x = p.next ().value) { yield x; } } ())) (function* (start) { for (let x = start; ; x++) { yield x; } }, function* (pred, iter) { for (let x = iter.next (); !x.done; x = iter.next ()) { if (pred (x.value)) { yield x.value; } } }, div => x => x % div != 0),
((chars, n) => (narray => (e, estate) => (pick => { e.innerHTML = pick.join (' ') + ' ' + e.innerHTML + ' ' + pick.reverse ().join (' '); }) (narray.map (k => chars [Math.floor (chars.length * Math.random ())]).map (s => '&#x' + s + ';'))) (Array.from (Array (n).keys ()))) ('2619 2661 2665 2763 2764 2765 2766 2767 2E96 2E97 2F3C 1F0B1 1F0B2 1F0B3 1F0B4 1F0B5 1F0B6 1F0B7 1F0B8 1F0B9 1F0BA 1F0BB 1F0BC 1F0BD 1F0BE 1F394 1F491 1F493 1F494 1F495 1F496 1F497 1F498 1F499 1F49A 1F49B 1F49C 1F49D 1F49E 1F49F 1F5A4 1F60D 1F63B'.split (' '), 5),
((step, paren) => ((gcd, show) => (e, estate) => ((a, b) => { e.innerHTML += '<br/>' + show (a, b, gcd (a, b)); }) (estate['buttonnum'], estate['diecount'])) ((a, b) => { const state = [a, b, 1, 0, 0, 1]; while (state[1] != 0) { step (state); } return [state[0], state[2], state[3]]; }, (a, b, [g, x, y]) => ['gcd = ', g, ' = ', paren (x), '*', a, ' + ', paren (y), '*', b].join (''))) (state => { const [a, b, fa, fb, ga, gb] = state; const m = a % b, d = (a - m) / b; state[0] = b; state[1] = m; state[2] = ga; state[3] = gb; state[4] = fa - d * ga; state[5] = fb - d * gb; }, a => a < 0 ? '(' + a + ')' : a.toString ()),
(fibs => (e, estate) => { e.innerHTML += '<br/>fib = ' + fibs.next ().value; }) (function* () { let a = BigInt (0), b = BigInt (1); yield a; yield b; for (;;) { [a, b] = [b, a + b]; yield b; } } ()),
(procstate => ((tobig, matmul, tofrac, show1, show2, diff, marker, lr4e) => ((S, L, R) => (mstream => (estream => (e, estate) => ((prev, tfnow) => (snow => { e.innerHTML += '<br/>e ~ ' + show1 (tfnow) + (prev === '' ? snow : marker (snow, diff (prev, snow))); procstate['prev'] = snow; }) (show2 (tfnow))) (procstate['prev'], tofrac (estream.next ().value))) (mstream (lr4e ()))) (function* (lrstream) { let m = S; for (let x = lrstream.next ().value; ; x = lrstream.next ().value) { m = matmul (m, x == 'L' ? L : R); yield m; } })) (tobig ([0, 1, 1, 0]), tobig ([1, 1, 0, 1]), tobig ([1, 0, 1, 1]))) (m => m.map (x => BigInt (x)), (m1, m2) => [m1 [0] * m2 [0] + m1 [1] * m2 [2], m1 [0] * m2 [1] + m1 [1] * m2 [3], m1 [2] * m2 [0] + m1 [3] * m2 [2], m1 [2] * m2 [1] + m1 [3] * m2 [3]], m => [m [0] + m [1], m [2] + m [3]], ([a, b]) => a.toString () + ' / ' + b.toString () + ' = ', (digits => (power => ([a, b]) => (a / b).toString () + '.' + (a % b * power / b).toString ().padStart (digits, '0')) (BigInt (10) ** BigInt (digits))) (60), (s1, s2) => { let n = Math.min (s1.length, s2.length); for (let k = 0; k < n; k++) { if (s1 [k] !== s2 [k]) { return k; } } return n < s2.length ? n : -1; }, (s, pos) => pos < 0 ? s : (s.substring (0, pos) + '_' + s.substring (pos)), function* () { let count = 0; yield 'R'; for (;;) { count += 2; yield* 'RL'; yield* 'R'.repeat (count); count += 2; yield* 'LR'; yield* 'L'.repeat (count); } })) ({prev: ''}),
((sortend, minover, swap) => (next => (e, estate) => { e.parentNode.children [0].innerHTML += ' nextperm=' + next (Array.from (estate['posttime'].replace (/\D/g, ''))).join (''); }) (arr => { if (arr.length < 2) { return arr; } for (let k = arr.length - 2; k >= 0; k--) { let over = minover (arr, k); if (over >= 0) { return sortend (swap (arr, k, over + k + 1), k + 1); } } return arr.sort (); })) ((arr, pos) => { arr.splice (pos, arr.length - pos, ...arr.slice (pos).sort ()); return arr; }, (arr, pos) => arr.slice (pos + 1).reduce ((acc, item, idx, sli) => (arr [pos] < item) && ((acc < 0) || (item < sli [acc])) ? idx : acc, -1), (arr, a, b) => { let x = arr [a]; arr [a] = arr [b]; arr [b] = x; return arr; }),
])