michael@0: // Church booleans michael@0: michael@0: var True = t => f => t; michael@0: var False = t => f => f; michael@0: var bool_to_str = b => b("True")("False"); michael@0: var And = a => b => a(b)(a); michael@0: var Or = a => b => a(a)(b); michael@0: michael@0: assertEq(And(True)(True), True); michael@0: assertEq(And(True)(False), False); michael@0: assertEq(And(False)(True), False); michael@0: assertEq(And(False)(False), False); michael@0: michael@0: assertEq(Or(True)(True), True); michael@0: assertEq(Or(True)(False), True); michael@0: assertEq(Or(False)(True), True); michael@0: assertEq(Or(False)(False), False);