Ternary logic: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: added whitespace, aligned statements.) |
(Added Julia language) |
||
Line 2,649: | Line 2,649: | ||
Maybe ≡ False is Maybe Maybe ≡ Maybe is Maybe Maybe ≡ True is Maybe |
Maybe ≡ False is Maybe Maybe ≡ Maybe is Maybe Maybe ≡ True is Maybe |
||
True ≡ False is False True ≡ Maybe is Maybe True ≡ True is True</pre> |
True ≡ False is False True ≡ Maybe is Maybe True ≡ True is True</pre> |
||
== Alternative version == |
|||
{{works with|Julia|0.7}} |
|||
With Julia 1.0 and the new type <tt>missing</tt>, three-value logic is implemented by default |
|||
<lang julia># built-in: true, false and missing |
|||
using Printf |
|||
const tril = (true, missing, false) |
|||
@printf("\n%8s | %8s\n", "A", "¬A") |
|||
for A in tril |
|||
@printf("%8s | %8s\n", A, !A) |
|||
end |
|||
@printf("\n%8s | %8s | %8s\n", "A", "B", "A ∧ B") |
|||
for (A, B) in Iterators.product(tril, tril) |
|||
@printf("%8s | %8s | %8s\n", A, B, A & B) |
|||
end |
|||
@printf("\n%8s | %8s | %8s\n", "A", "B", "A ∨ B") |
|||
for (A, B) in Iterators.product(tril, tril) |
|||
@printf("%8s | %8s | %8s\n", A, B, A | B) |
|||
end |
|||
@printf("\n%8s | %8s | %8s\n", "A", "B", "A ≡ B") |
|||
for (A, B) in Iterators.product(tril, tril) |
|||
@printf("%8s | %8s | %8s\n", A, B, A == B) |
|||
end |
|||
⊃(A, B) = B | !A |
|||
@printf("\n%8s | %8s | %8s\n", "A", "B", "A ⊃ B") |
|||
for (A, B) in Iterators.product(tril, tril) |
|||
@printf("%8s | %8s | %8s\n", A, B, A ⊃ B) |
|||
end</lang> |
|||
=={{header|Kotlin}}== |
=={{header|Kotlin}}== |