On Tue, 16 Jun 2009 22:46:14 -0700, William Clifford wrote:

> I was staring at a logic table the other day, and I asked myself, "what
> if one wanted to play with exotic logics; how might one do it?"


This might be useful for you, and if not useful, at least it might blow 
your mind like it did mine.

(This is not original to me -- I didn't create it. However, I can't find 
the original source.)

Imagine for a moment that there are no boolean values. 
There are no numbers.  They were never invented.
There are no classes.
There are no objects.
There are only functions.

Could you define functions that act like boolean values? And could you 
define other functions to operate on them?


def true(x, y):
    return x

def false(x, y):
    return y

def print_bool(b):
    print b("true", "false")

print_bool(true)
print_bool(false)


def Not(b):
    def not_b(x, y):
        return b(y, x)
    return not_b

print_bool(Not(true))
print_bool(Not(false))
print_bool(Not(Not(true)))

def And(a, b):
    return a(b, a)

def Or(a, b):
    return a(a, b)

print_bool(And(true, true))
print_bool(And(true, false))
print_bool(Or(false, true))
print_bool(Or(false, false))



-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to