Ternary logic: Difference between revisions

Line 3,466:
<syntaxhighlight lang="langur"># borrowing null for "maybe"
val .trSet = [false, null, true]
 
val .result = f $"\{nn [.r, "maybe"]:-5}"
 
val .and = f switch[and] .a, .b {
Line 3,484 ⟶ 3,482:
 
val .imply = f 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 .resultF = f $"\{nn [.r, "maybe"]:-5}"
 
writeln "a not a"
for .a in .trSet {
writeln $"\.result(a:.a),F; " ", .result\(not? .a:.F)"
}
 
Line 3,493 ⟶ 3,496:
for .a in .trSet {
for .b in .trSet {
writeln $"\.result(a:.a)F; \.result(b:.b)F; ", .result(\.and(.a, .b)):.F;"
}
}
Line 3,500 ⟶ 3,503:
for .a in .trSet {
for .b in .trSet {
writeln $"\.result(a:.a)F; \.result(b:.b)F; ", .result(\.or(.a, .b)):.F;"
}
}
Line 3,507 ⟶ 3,510:
for .a in .trSet {
for .b in .trSet {
writeln $"\.result(a:.a)F; \.result(b:.b)F; ", .result(\.imply(.a, .b)):.F;"
}
}
Line 3,514 ⟶ 3,517:
for .a in .trSet {
for .b in .trSet {
writeln $"\.result(.a):.F; \.result(.b):.F; ", .result(\.a ==? .b):.F;"
}
}</syntaxhighlight>
990

edits