summaryrefslogtreecommitdiff
path: root/src/toys/godel/js/godel-worker.js
diff options
context:
space:
mode:
authorElizabeth Alexander Hunt <me@liz.coffee>2026-07-05 12:42:44 -0700
committerElizabeth Alexander Hunt <me@liz.coffee>2026-07-05 12:42:44 -0700
commit94b912b649150b9863a62096ba4740b2cc8ad21a (patch)
tree1882236fc980fa5946d3089a2f2e4670f3a70580 /src/toys/godel/js/godel-worker.js
parentab0ddcaeb1fc37351d14b89100e07d3a343ba9e1 (diff)
downloadlizdotcoffee-94b912b649150b9863a62096ba4740b2cc8ad21a.tar.gz
lizdotcoffee-94b912b649150b9863a62096ba4740b2cc8ad21a.zip
Factor
Diffstat (limited to 'src/toys/godel/js/godel-worker.js')
-rw-r--r--src/toys/godel/js/godel-worker.js42
1 files changed, 0 insertions, 42 deletions
diff --git a/src/toys/godel/js/godel-worker.js b/src/toys/godel/js/godel-worker.js
deleted file mode 100644
index 1ba9da4..0000000
--- a/src/toys/godel/js/godel-worker.js
+++ /dev/null
@@ -1,42 +0,0 @@
-const isPrime = (n) => {
- if (n < 2) {
- return false;
- }
- if (n === 2) {
- return true;
- }
- if (n % 2 === 0) {
- return false;
- }
- const limit = Math.floor(Math.sqrt(n));
- for (let i = 3; i <= limit; i += 2) {
- if (n % i === 0) {
- return false;
- }
- }
- return true;
-};
-
-const primes = [2];
-const primeAt = (index) => {
- while (primes.length < index) {
- let candidate = primes[primes.length - 1] + 1;
- while (!isPrime(candidate)) {
- candidate += 1;
- }
- primes.push(candidate);
- }
- return primes[index - 1];
-};
-
-const computeGodelNumber = (sequence) => {
- return sequence.reduce((acc, exponent, idx) => {
- const prime = BigInt(primeAt(idx + 1));
- return acc * prime ** BigInt(exponent);
- }, BigInt(1)) - BigInt(1);
-};
-
-self.addEventListener("message", (event) => {
- const result = computeGodelNumber(event.data);
- self.postMessage(result.toString());
-});