LogicGates
Common logic gates written in Ruby. A proof that all logical operations can be derived from AND, OR and NOT.
def my_and(a, b)
a && b
end
def my_or(a, b)
a || b
end
def not(a)
!a
end
def xor(a, b)
my_and(my_or(a, b), not(my_and(a, b)))
end
def nor(a, b)
not(my_or(a, b))
end
def nand(a, b)
not(my_and(a, b))
end
def xnor(a, b)
not(xor(a, b))
end
def mux(a, b, s)
my_or(my_and(a, not(s)), my_and(b, s))
end