22 lines
728 B
Python
22 lines
728 B
Python
# Copyright (c) PARRRATE T&V 2021. All rights reserved.
|
|
|
|
from bu4.evaluation.constructs.evalue import EValue
|
|
from bu4.evaluation.constructs.proxy import eproxy
|
|
from bu4.evaluation.sync import sync
|
|
|
|
__all__ = ('to_bool', 'with_common_interface',)
|
|
|
|
|
|
def to_bool(_01):
|
|
return _01(True)(False)
|
|
|
|
|
|
def with_common_interface(value: EValue):
|
|
value = sync(value.call(eproxy(0)))
|
|
value = sync(value.call(eproxy(1)))
|
|
value = sync(value.call(eproxy(lambda a: lambda b: a + b)))
|
|
value = sync(value.call(eproxy(lambda n: lambda x: lambda y: x if n == 0 else y)))
|
|
value = sync(value.call(eproxy(lambda n: lambda x: lambda y: x if n & 1 else y)))
|
|
value = sync(value.call(eproxy(lambda n: n >> 1)))
|
|
return value
|