Truth table: Difference between revisions
Content added Content deleted
mNo edit summary |
No edit summary |
||
Line 2,875: | Line 2,875: | ||
Thank you</pre> |
Thank you</pre> |
||
=={{header|R}}== |
|||
<lang r> |
|||
truth_table <- function(x) { |
|||
vars <- unlist(strsplit(x, "[^a-zA-Z]+")) |
|||
perm <- data.frame(expand.grid(rep(list(c(TRUE, FALSE)), length(vars)))) |
|||
names(perm) <- vars |
|||
perm[ , x] <- with(perm, eval(parse(text = x))) |
|||
perm |
|||
} |
|||
"%^%" <- xor # define unary xor operator |
|||
truth_table("A | B") |
|||
## A B A | B |
|||
## 1 TRUE TRUE TRUE |
|||
## 2 FALSE TRUE TRUE |
|||
## 3 TRUE FALSE TRUE |
|||
## 4 FALSE FALSE FALSE |
|||
truth_table("A & B") |
|||
## A B A & B |
|||
## 1 TRUE TRUE TRUE |
|||
## 2 FALSE TRUE FALSE |
|||
## 3 TRUE FALSE FALSE |
|||
## 4 FALSE FALSE FALSE |
|||
truth_table("A %^% B") |
|||
## A B A %^% B |
|||
## 1 TRUE TRUE FALSE |
|||
## 2 FALSE TRUE TRUE |
|||
## 3 TRUE FALSE TRUE |
|||
## 4 FALSE FALSE FALSE |
|||
truth_table("S | ( T %^% U )") |
|||
## S T U S | ( T %^% U ) |
|||
## 1 TRUE TRUE TRUE TRUE |
|||
## 2 FALSE TRUE TRUE FALSE |
|||
## 3 TRUE FALSE TRUE TRUE |
|||
## 4 FALSE FALSE TRUE TRUE |
|||
## 5 TRUE TRUE FALSE TRUE |
|||
## 6 FALSE TRUE FALSE TRUE |
|||
## 7 TRUE FALSE FALSE TRUE |
|||
## 8 FALSE FALSE FALSE FALSE |
|||
truth_table("A %^% (B %^% (C %^% D))") |
|||
## A B C D A %^% (B %^% (C %^% D)) |
|||
## 1 TRUE TRUE TRUE TRUE FALSE |
|||
## 2 FALSE TRUE TRUE TRUE TRUE |
|||
## 3 TRUE FALSE TRUE TRUE TRUE |
|||
## 4 FALSE FALSE TRUE TRUE FALSE |
|||
## 5 TRUE TRUE FALSE TRUE TRUE |
|||
## 6 FALSE TRUE FALSE TRUE FALSE |
|||
## 7 TRUE FALSE FALSE TRUE FALSE |
|||
## 8 FALSE FALSE FALSE TRUE TRUE |
|||
## 9 TRUE TRUE TRUE FALSE TRUE |
|||
## 10 FALSE TRUE TRUE FALSE FALSE |
|||
## 11 TRUE FALSE TRUE FALSE FALSE |
|||
## 12 FALSE FALSE TRUE FALSE TRUE |
|||
## 13 TRUE TRUE FALSE FALSE FALSE |
|||
## 14 FALSE TRUE FALSE FALSE TRUE |
|||
## 15 TRUE FALSE FALSE FALSE TRUE |
|||
## 16 FALSE FALSE FALSE FALSE FALSE |
|||
</lang> |
|||
=={{header|Racket}}== |
=={{header|Racket}}== |