Name Boolean ops.

So they don't overshadow the defs for the short-circuiting combinators.
This commit is contained in:
sforman 2023-07-30 15:41:58 -07:00
parent 1089ab7c24
commit 373666bf39
1 changed files with 7 additions and 4 deletions

View File

@ -933,7 +933,7 @@ def swap(stack):
return (a1, (a2, stack))
def BinaryLogicWrapper(f):
def BinaryLogicWrapper(f, name=None):
'''
Wrap functions that take two numbers and return a single result.
'''
@ -946,6 +946,9 @@ def BinaryLogicWrapper(f):
result = f(b, a)
return (result, stack), expression, dictionary
if name:
BinaryLogicWrapper_inner.__name__ = name
return BinaryLogicWrapper_inner
@ -1030,9 +1033,9 @@ for F in (
##╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝
UnaryWrapper(bool), # Convert any value to Boolean.
# (The only polymorphic function.)
BinaryLogicWrapper(operator.xor),
BinaryLogicWrapper(operator.and_),
BinaryLogicWrapper(operator.or_),
BinaryLogicWrapper(operator.xor, name='_\\/_'),
BinaryLogicWrapper(operator.and_, name='/\\'),
BinaryLogicWrapper(operator.or_, name='\\/'),
UnaryLogicWrapper(operator.not_),
##███╗ ███╗ █████╗ ████████╗██╗ ██╗
##████╗ ████║██╔══██╗╚══██╔══╝██║ ██║