Data update
This commit is contained in:
parent
29a5eea0d4
commit
5c1bb7bfa9
2011 changed files with 35081 additions and 3229 deletions
|
|
@ -1,5 +1,4 @@
|
|||
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
|
||||
nand = (a, b) => (a == false || b == false) ? true : (a == undefined || b == undefined) ? undefined : false
|
||||
not = (a) => nand(a, a)
|
||||
and = (a, b) => not(nand(a, b))
|
||||
or = (a, b) => nand(not(a), not(b))
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
trit = [false, undefined, true]
|
||||
functor = {nand, and, or, nor, implies, iff, xor}
|
||||
display = {nand: '⊼', and: '∧', or: '∨', nor: '⊽', implies: '⇒', iff: '⇔', xor: '⊻', not: '¬'}
|
||||
values = Object.values(trit)
|
||||
display = {nand: '⊼', and: '∧', or: '∨', nor: '⊽', implies: '→', iff: '↔', xor: '⊻', not: '¬', false: 'F', undefined: '?', true: 'T'}
|
||||
|
||||
log = 'NOT\n';
|
||||
for (let a of values) log += `${display.not}${a} = ${a}\n`
|
||||
for (let a of trit) log += `${display.not}${display[a]} = ${display[not(a)]}\n`
|
||||
|
||||
log += '\nNAND AND OR NOR IMPLIES IFF XOR'
|
||||
for (let a of values) {
|
||||
for (let b of values) {
|
||||
log += '\nNAND AND OR NOR IMPLIES IFF XOR'
|
||||
for (let a of trit) {
|
||||
for (let b of trit) {
|
||||
log += "\n"
|
||||
for (let op in functor) log += `${a} ${display[op]} ${b} = ${functor[op](a, b)} `
|
||||
for (let op in functor) log += `${display[a]} ${display[op]} ${display[b]} = ${display[functor[op](a, b)]} `
|
||||
}
|
||||
}
|
||||
console.log(log)
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
NOT
|
||||
¬F = F
|
||||
¬U = U
|
||||
¬T = T
|
||||
¬F = T
|
||||
¬? = ?
|
||||
¬T = F
|
||||
|
||||
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
|
||||
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 ⊼ ? = T F ∧ ? = F F ∨ ? = ? F ⊽ ? = ? F → ? = T F ↔ ? = ? F ⊻ ? = ?
|
||||
F ⊼ T = T F ∧ T = F F ∨ T = T F ⊽ T = F F → T = T F ↔ T = F F ⊻ T = T
|
||||
? ⊼ F = T ? ∧ F = F ? ∨ F = ? ? ⊽ F = ? ? → F = ? ? ↔ F = ? ? ⊻ F = ?
|
||||
? ⊼ ? = ? ? ∧ ? = ? ? ∨ ? = ? ? ⊽ ? = ? ? → ? = ? ? ↔ ? = ? ? ⊻ ? = ?
|
||||
? ⊼ T = ? ? ∧ T = ? ? ∨ T = T ? ⊽ T = F ? → T = T ? ↔ T = ? ? ⊻ T = ?
|
||||
T ⊼ F = T T ∧ F = F T ∨ F = T T ⊽ F = F T → F = F T ↔ F = F T ⊻ F = T
|
||||
T ⊼ ? = ? T ∧ ? = ? T ∨ ? = T T ⊽ ? = F T → ? = ? T ↔ ? = ? T ⊻ ? = ?
|
||||
T ⊼ T = F T ∧ T = T T ∨ T = T T ⊽ T = F T → T = T T ↔ T = T T ⊻ T = F
|
||||
|
|
|
|||
|
|
@ -1,56 +1,56 @@
|
|||
# borrowing null for "maybe"
|
||||
val .trSet = [false, null, true]
|
||||
val trSet = [false, null, true]
|
||||
|
||||
val .and = fn(.a, .b) switch[and] .a, .b {
|
||||
val tand = fn a, b: switch[and] a, b {
|
||||
case true, null:
|
||||
case null, true:
|
||||
case null: null
|
||||
default: .a and .b
|
||||
default: a and b
|
||||
}
|
||||
|
||||
val .or = fn(.a, .b) switch[and] .a, .b {
|
||||
val tor = fn a, b: switch[and] a, b {
|
||||
case false, null:
|
||||
case null, false:
|
||||
case null: null
|
||||
default: .a or .b
|
||||
default: a or b
|
||||
}
|
||||
|
||||
val .imply = fn(.a, .b) if(.a nor .b: not? .a; .b)
|
||||
val imply = fn a, b: if(a nor b: not? a; b)
|
||||
|
||||
# formatting function for the result values
|
||||
# replacing null with "maybe"
|
||||
# using left alignment of 5 code points
|
||||
val .F = fn(.r) $"\{nn [.r, "maybe"]:-5}"
|
||||
val F = fn r: "{{nn([r, "maybe"]):-5}}"
|
||||
|
||||
writeln "a not a"
|
||||
for .a in .trSet {
|
||||
writeln $"\.a:.F; \(not? .a:.F)"
|
||||
for a in trSet {
|
||||
writeln "{{a:fn F}} {{not? a:fn F}}"
|
||||
}
|
||||
|
||||
writeln "\na b a and b"
|
||||
for .a in .trSet {
|
||||
for .b in .trSet {
|
||||
writeln $"\.a:.F; \.b:.F; \.and(.a, .b):.F;"
|
||||
for a in trSet {
|
||||
for b in trSet {
|
||||
writeln "{{a:fn F}} {{b:fn F}} {{tand(a, b):fn F}}"
|
||||
}
|
||||
}
|
||||
|
||||
writeln "\na b a or b"
|
||||
for .a in .trSet {
|
||||
for .b in .trSet {
|
||||
writeln $"\.a:.F; \.b:.F; \.or(.a, .b):.F;"
|
||||
for a in trSet {
|
||||
for b in trSet {
|
||||
writeln "{{a:fn F}} {{b:fn F}} {{tor(a, b):fn F}}"
|
||||
}
|
||||
}
|
||||
|
||||
writeln "\na b a implies b"
|
||||
for .a in .trSet {
|
||||
for .b in .trSet {
|
||||
writeln $"\.a:.F; \.b:.F; \.imply(.a, .b):.F;"
|
||||
for a in trSet {
|
||||
for b in trSet {
|
||||
writeln "{{a:fn F}} {{b:fn F}} {{imply(a, b):fn F}}"
|
||||
}
|
||||
}
|
||||
|
||||
writeln "\na b a eq b"
|
||||
for .a in .trSet {
|
||||
for .b in .trSet {
|
||||
writeln $"\.a:.F; \.b:.F; \.a ==? .b:.F;"
|
||||
for a in trSet {
|
||||
for b in trSet {
|
||||
writeln "{{a:fn F}} {{b:fn F}} {{a ==? b:fn F}}"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue