August 27, 2024

P46 - Truth tables for logical expressions.

Logic and Codes

As in the previous section, we will start with a skeleton file, logic1.scala, and add code to it for each problem.  The difference here is that the file starts out almost empty.

Define functions and, or, nand, nor, xor, impl, and equ (for logical equivalence) which return true or false according to the result of their respective operations; e.g. and(A, B) is true if and only if both AA and BB are true.

scala

scala> and(true, true)
res0: Boolean = true

scala> xor(true. true)
res1: Boolean = false

A logical expression in two variables can then be written as an function of two variables, e.g: (a: Boolean, b: Boolean) => and(or(a, b), nand(a, b))

Now, write a function called table2 which prints the truth table of a given logical expression in two variables.

scala

scala> table2((a: Boolean, b: Boolean) => and(a, or(a, b)))
A     B     result
true  true  true
true  false true
false true  false
false false false
Be first to comment
Leave a reply