From 043d4cf37e0085dbb31d73b4156f5561fd2b3160 Mon Sep 17 00:00:00 2001 From: Kyle Serrecchia Date: Thu, 30 Jan 2025 19:28:06 -0800 Subject: restructured folders --- j/javascript/README.md | 3 -- j/javascript/lambda-core.js | 55 ------------------- languages/j/.DS_Store | Bin 0 -> 6148 bytes languages/j/javascript/README.md | 3 ++ languages/j/javascript/lambda-core.js | 55 +++++++++++++++++++ languages/r/.DS_Store | Bin 0 -> 6148 bytes languages/r/racket/README.md | 3 ++ languages/r/racket/lambda-core.rkt | 96 ++++++++++++++++++++++++++++++++++ r/racket/README.md | 3 -- r/racket/lambda-core.rkt | 96 ---------------------------------- 10 files changed, 157 insertions(+), 157 deletions(-) delete mode 100644 j/javascript/README.md delete mode 100644 j/javascript/lambda-core.js create mode 100644 languages/j/.DS_Store create mode 100644 languages/j/javascript/README.md create mode 100644 languages/j/javascript/lambda-core.js create mode 100644 languages/r/.DS_Store create mode 100644 languages/r/racket/README.md create mode 100644 languages/r/racket/lambda-core.rkt delete mode 100644 r/racket/README.md delete mode 100644 r/racket/lambda-core.rkt diff --git a/j/javascript/README.md b/j/javascript/README.md deleted file mode 100644 index 1b35010..0000000 --- a/j/javascript/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Download NodeJS version 4 or above - -Run by lambda-core.js like this: `node lambda-core.js` \ No newline at end of file diff --git a/j/javascript/lambda-core.js b/j/javascript/lambda-core.js deleted file mode 100644 index 5b4d7c9..0000000 --- a/j/javascript/lambda-core.js +++ /dev/null @@ -1,55 +0,0 @@ -// LOGIC -const _true = x => y => x; -const _false = x => y => y; -const _not = b => b(_false)(_true) -const _and = b1 => b2 => b1(b2)(_false) -const _or = b1 => b2 => b1(_true)(b2) - -// CHURCH NUMERALS -const _zero = f => x => x; -const _succ = n => f => x => f(n(f)(x)) -const _pred = n => f => x => n(g => h => h(g(f)))(u => x)(a => a) -const _one = _succ(_zero) - -// HELPERS - not pure lambda calculus -const readBool = b => console.log(b("t")("f")) -const readChurch = n => console.log(n(x => x+1)(0)) - -// ------------------------------------------------- - -// EXAMPLES -console.log("LOGIC") -console.log("---------------") -console.log("TRUE/FALSE") -readBool(_true) // t -readBool(_false) // f - -console.log("NOT") -readBool(_not(_true)) // f -readBool(_not(_false)) // t - -console.log("AND") -readBool(_and(_true)(_true)) // t -readBool(_and(_true)(_false)) // f -readBool(_and(_false)(_true)) // f -readBool(_and(_false)(_false)) // f - -console.log("OR") -readBool(_or(_true)(_true)) // t -readBool(_or(_true)(_false)) // t -readBool(_or(_false)(_true)) // t -readBool(_or(_false)(_false)) // f - -console.log("\nCHURCH NUMERALS") -console.log("---------------") -console.log("ZERO/SUCC") -readChurch(_zero) // 0 -readChurch(_one) // 1 -readChurch(_succ(_one)) // 2 -readChurch(_succ(_succ(_one))) // 3 - -console.log("PRED") -readChurch(_pred(_one)) // 0 -readChurch(_pred(_succ(_one))) // 1 -readChurch(_pred(_succ(_succ(_one)))) // 2 - diff --git a/languages/j/.DS_Store b/languages/j/.DS_Store new file mode 100644 index 0000000..8962031 Binary files /dev/null and b/languages/j/.DS_Store differ diff --git a/languages/j/javascript/README.md b/languages/j/javascript/README.md new file mode 100644 index 0000000..1b35010 --- /dev/null +++ b/languages/j/javascript/README.md @@ -0,0 +1,3 @@ +Download NodeJS version 4 or above + +Run by lambda-core.js like this: `node lambda-core.js` \ No newline at end of file diff --git a/languages/j/javascript/lambda-core.js b/languages/j/javascript/lambda-core.js new file mode 100644 index 0000000..5b4d7c9 --- /dev/null +++ b/languages/j/javascript/lambda-core.js @@ -0,0 +1,55 @@ +// LOGIC +const _true = x => y => x; +const _false = x => y => y; +const _not = b => b(_false)(_true) +const _and = b1 => b2 => b1(b2)(_false) +const _or = b1 => b2 => b1(_true)(b2) + +// CHURCH NUMERALS +const _zero = f => x => x; +const _succ = n => f => x => f(n(f)(x)) +const _pred = n => f => x => n(g => h => h(g(f)))(u => x)(a => a) +const _one = _succ(_zero) + +// HELPERS - not pure lambda calculus +const readBool = b => console.log(b("t")("f")) +const readChurch = n => console.log(n(x => x+1)(0)) + +// ------------------------------------------------- + +// EXAMPLES +console.log("LOGIC") +console.log("---------------") +console.log("TRUE/FALSE") +readBool(_true) // t +readBool(_false) // f + +console.log("NOT") +readBool(_not(_true)) // f +readBool(_not(_false)) // t + +console.log("AND") +readBool(_and(_true)(_true)) // t +readBool(_and(_true)(_false)) // f +readBool(_and(_false)(_true)) // f +readBool(_and(_false)(_false)) // f + +console.log("OR") +readBool(_or(_true)(_true)) // t +readBool(_or(_true)(_false)) // t +readBool(_or(_false)(_true)) // t +readBool(_or(_false)(_false)) // f + +console.log("\nCHURCH NUMERALS") +console.log("---------------") +console.log("ZERO/SUCC") +readChurch(_zero) // 0 +readChurch(_one) // 1 +readChurch(_succ(_one)) // 2 +readChurch(_succ(_succ(_one))) // 3 + +console.log("PRED") +readChurch(_pred(_one)) // 0 +readChurch(_pred(_succ(_one))) // 1 +readChurch(_pred(_succ(_succ(_one)))) // 2 + diff --git a/languages/r/.DS_Store b/languages/r/.DS_Store new file mode 100644 index 0000000..a9e3c4b Binary files /dev/null and b/languages/r/.DS_Store differ diff --git a/languages/r/racket/README.md b/languages/r/racket/README.md new file mode 100644 index 0000000..9c04ccf --- /dev/null +++ b/languages/r/racket/README.md @@ -0,0 +1,3 @@ +Download Racket version 6 or above + +Run by lambda-core.rkt like this: `racket lambda-core.rkt` \ No newline at end of file diff --git a/languages/r/racket/lambda-core.rkt b/languages/r/racket/lambda-core.rkt new file mode 100644 index 0000000..c9f695f --- /dev/null +++ b/languages/r/racket/lambda-core.rkt @@ -0,0 +1,96 @@ +#lang racket + +; LOGIC +(define _true + (lambda (x) + (lambda (y) x))) + +(define _false + (lambda (x) + (lambda (y) y))) + +(define _not + (lambda (b) + ((b _false) _true))) + +(define _and + (lambda (b1) + (lambda (b2) + ((b1 b2) _false)))) + +(define _or + (lambda (b1) + (lambda (b2) + ((b1 _true) b2)))) + + +; CHURCH NUMERALS +(define _zero + (lambda (f) + (lambda (x) x))) + +(define _succ + (lambda (n) + (lambda (f) + (lambda (x) + (f ((n f) x)))))) + +(define _pred + (lambda (n) + (lambda (f) + (lambda (x) + (((n (lambda (g) + (lambda (h) (h (g f))))) + (lambda (u) x)) + (lambda (a) a)))))) + +(define _one (_succ _zero)) + + +; HELPERS - not pure lambda calculus +(define read-bool + (lambda (b) + (displayln ((b "t") "f")))) + +(define read-church + (lambda (n) + (displayln ((n (lambda (x) (+ x 1))) 0)))) + +; ------------------------------------------------- + +; EXAMPLES +(displayln "LOGIC") +(displayln "--------------") +(displayln "TRUE/FALSE") +(read-bool _true) ; t +(read-bool _false) ; f + +(displayln "NOT") +(read-bool (_not _true)) ; f +(read-bool (_not _false)) ; t + +(displayln "AND") +(read-bool ((_and _true) _true)) ; t +(read-bool ((_and _true) _false)) ; f +(read-bool ((_and _false) _true)) ; f +(read-bool ((_and _false) _false)) ; f + +(displayln "OR") +(read-bool ((_or _true) _true)) ; t +(read-bool ((_or _true) _false)) ; t +(read-bool ((_or _false) _true)) ; t +(read-bool ((_or _false) _false)) ; f + +(displayln "\nCHURCH NUMERALS") +(displayln "--------------") +(displayln "ZERO/SUCC") +(read-church _zero) ; 0 +(read-church (_succ _zero)) ; 1 +(read-church (_succ (_succ _zero))) ; 2 +(read-church (_succ (_succ (_succ _zero)))) ; 3 + +(displayln "PRED") +(read-church (_pred _one)) ; 0 +(read-church (_pred (_succ _one))) ; 1 +(read-church (_pred (_succ (_succ _one)))) ; 2 + diff --git a/r/racket/README.md b/r/racket/README.md deleted file mode 100644 index 9c04ccf..0000000 --- a/r/racket/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Download Racket version 6 or above - -Run by lambda-core.rkt like this: `racket lambda-core.rkt` \ No newline at end of file diff --git a/r/racket/lambda-core.rkt b/r/racket/lambda-core.rkt deleted file mode 100644 index c9f695f..0000000 --- a/r/racket/lambda-core.rkt +++ /dev/null @@ -1,96 +0,0 @@ -#lang racket - -; LOGIC -(define _true - (lambda (x) - (lambda (y) x))) - -(define _false - (lambda (x) - (lambda (y) y))) - -(define _not - (lambda (b) - ((b _false) _true))) - -(define _and - (lambda (b1) - (lambda (b2) - ((b1 b2) _false)))) - -(define _or - (lambda (b1) - (lambda (b2) - ((b1 _true) b2)))) - - -; CHURCH NUMERALS -(define _zero - (lambda (f) - (lambda (x) x))) - -(define _succ - (lambda (n) - (lambda (f) - (lambda (x) - (f ((n f) x)))))) - -(define _pred - (lambda (n) - (lambda (f) - (lambda (x) - (((n (lambda (g) - (lambda (h) (h (g f))))) - (lambda (u) x)) - (lambda (a) a)))))) - -(define _one (_succ _zero)) - - -; HELPERS - not pure lambda calculus -(define read-bool - (lambda (b) - (displayln ((b "t") "f")))) - -(define read-church - (lambda (n) - (displayln ((n (lambda (x) (+ x 1))) 0)))) - -; ------------------------------------------------- - -; EXAMPLES -(displayln "LOGIC") -(displayln "--------------") -(displayln "TRUE/FALSE") -(read-bool _true) ; t -(read-bool _false) ; f - -(displayln "NOT") -(read-bool (_not _true)) ; f -(read-bool (_not _false)) ; t - -(displayln "AND") -(read-bool ((_and _true) _true)) ; t -(read-bool ((_and _true) _false)) ; f -(read-bool ((_and _false) _true)) ; f -(read-bool ((_and _false) _false)) ; f - -(displayln "OR") -(read-bool ((_or _true) _true)) ; t -(read-bool ((_or _true) _false)) ; t -(read-bool ((_or _false) _true)) ; t -(read-bool ((_or _false) _false)) ; f - -(displayln "\nCHURCH NUMERALS") -(displayln "--------------") -(displayln "ZERO/SUCC") -(read-church _zero) ; 0 -(read-church (_succ _zero)) ; 1 -(read-church (_succ (_succ _zero))) ; 2 -(read-church (_succ (_succ (_succ _zero)))) ; 3 - -(displayln "PRED") -(read-church (_pred _one)) ; 0 -(read-church (_pred (_succ _one))) ; 1 -(read-church (_pred (_succ (_succ _one)))) ; 2 - -- cgit v1.2.3