Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
33
Task/Ternary-logic/JavaScript/ternary-logic-1.js
Normal file
33
Task/Ternary-logic/JavaScript/ternary-logic-1.js
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
var L3 = new Object();
|
||||
|
||||
L3.not = function(a) {
|
||||
if (typeof a == "boolean") return !a;
|
||||
if (a == undefined) return undefined;
|
||||
throw("Invalid Ternary Expression.");
|
||||
}
|
||||
|
||||
L3.and = function(a, b) {
|
||||
if (typeof a == "boolean" && typeof b == "boolean") return a && b;
|
||||
if ((a == true && b == undefined) || (a == undefined && b == true)) return undefined;
|
||||
if ((a == false && b == undefined) || (a == undefined && b == false)) return false;
|
||||
if (a == undefined && b == undefined) return undefined;
|
||||
throw("Invalid Ternary Expression.");
|
||||
}
|
||||
|
||||
L3.or = function(a, b) {
|
||||
if (typeof a == "boolean" && typeof b == "boolean") return a || b;
|
||||
if ((a == true && b == undefined) || (a == undefined && b == true)) return true;
|
||||
if ((a == false && b == undefined) || (a == undefined && b == false)) return undefined;
|
||||
if (a == undefined && b == undefined) return undefined;
|
||||
throw("Invalid Ternary Expression.");
|
||||
}
|
||||
|
||||
// A -> B is equivalent to -A or B
|
||||
L3.ifThen = function(a, b) {
|
||||
return L3.or(L3.not(a), b);
|
||||
}
|
||||
|
||||
// A <=> B is equivalent to (A -> B) and (B -> A)
|
||||
L3.iff = function(a, b) {
|
||||
return L3.and(L3.ifThen(a, b), L3.ifThen(b, a));
|
||||
}
|
||||
10
Task/Ternary-logic/JavaScript/ternary-logic-2.js
Normal file
10
Task/Ternary-logic/JavaScript/ternary-logic-2.js
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
L3.not(true) // false
|
||||
L3.not(var a) // undefined
|
||||
|
||||
L3.and(true, a) // undefined
|
||||
|
||||
L3.or(a, 2 == 3) // false
|
||||
|
||||
L3.ifThen(true, a) // undefined
|
||||
|
||||
L3.iff(a, 2 == 2) // undefined
|
||||
9
Task/Ternary-logic/JavaScript/ternary-logic-3.js
Normal file
9
Task/Ternary-logic/JavaScript/ternary-logic-3.js
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
trit = {false: 'F', maybe: 'U', true: 'T'}
|
||||
nand = (a, b) => (a == trit.false || b == trit.false) ? trit.true : (a == trit.maybe || b == trit.maybe) ? trit.maybe : trit.false
|
||||
not = (a) => nand(a, a)
|
||||
and = (a, b) => not(nand(a, b))
|
||||
or = (a, b) => nand(not(a), not(b))
|
||||
nor = (a, b) => not(or(a, b))
|
||||
implies = (a, b) => nand(a, not(b))
|
||||
iff = (a, b) => or(and(a, b), nor(a, b))
|
||||
xor = (a, b) => not(iff(a, b))
|
||||
15
Task/Ternary-logic/JavaScript/ternary-logic-4.js
Normal file
15
Task/Ternary-logic/JavaScript/ternary-logic-4.js
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
functor = {nand, and, or, nor, implies, iff, xor}
|
||||
display = {nand: '⊼', and: '∧', or: '∨', nor: '⊽', implies: '⇒', iff: '⇔', xor: '⊻', not: '¬'}
|
||||
values = Object.values(trit)
|
||||
|
||||
log = 'NOT\n';
|
||||
for (let a of values) log += `${display.not}${a} = ${a}\n`
|
||||
|
||||
log += '\nNAND AND OR NOR IMPLIES IFF XOR'
|
||||
for (let a of values) {
|
||||
for (let b of values) {
|
||||
log += "\n"
|
||||
for (let op in functor) log += `${a} ${display[op]} ${b} = ${functor[op](a, b)} `
|
||||
}
|
||||
}
|
||||
console.log(log)
|
||||
15
Task/Ternary-logic/JavaScript/ternary-logic-5.js
Normal file
15
Task/Ternary-logic/JavaScript/ternary-logic-5.js
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
NOT
|
||||
¬F = F
|
||||
¬U = U
|
||||
¬T = T
|
||||
|
||||
NAND AND OR NOR IMPLIES IFF XOR
|
||||
F ⊼ F = T F ∧ F = F F ∨ F = F F ⊽ F = T F ⇒ F = T F ⇔ F = T F ⊻ F = F
|
||||
F ⊼ U = T F ∧ U = F F ∨ U = U F ⊽ U = U F ⇒ U = T F ⇔ U = U F ⊻ U = U
|
||||
F ⊼ T = T F ∧ T = F F ∨ T = T F ⊽ T = F F ⇒ T = T F ⇔ T = F F ⊻ T = T
|
||||
U ⊼ F = T U ∧ F = F U ∨ F = U U ⊽ F = U U ⇒ F = U U ⇔ F = U U ⊻ F = U
|
||||
U ⊼ U = U U ∧ U = U U ∨ U = U U ⊽ U = U U ⇒ U = U U ⇔ U = U U ⊻ U = U
|
||||
U ⊼ T = U U ∧ T = U U ∨ T = T U ⊽ T = F U ⇒ T = T U ⇔ T = U U ⊻ T = U
|
||||
T ⊼ F = T T ∧ F = F T ∨ F = T T ⊽ F = F T ⇒ F = F T ⇔ F = F T ⊻ F = T
|
||||
T ⊼ U = U T ∧ U = U T ∨ U = T T ⊽ U = F T ⇒ U = U T ⇔ U = U T ⊻ U = U
|
||||
T ⊼ T = F T ∧ T = T T ∨ T = T T ⊽ T = F T ⇒ T = T T ⇔ T = T T ⊻ T = F
|
||||
Loading…
Add table
Add a link
Reference in a new issue