Вы должны понять, что на самом деле означает (x > 5)
. Если предположить, что x
представляет число, то оно в основном «классифицирует» все числа больше пяти. Таким образом, код будет выглядеть на языке с синтаксисом Python:
class Number(Object):
# ... Number implementation code ... #
def doSomething():
self = 0
return self
def doSomethingElse():
pass
class GreaterThan5(Number):
def doSomething():
print "I am " + self
def doSomethingElse():
print "I like turtles!"
Тогда мы могли бы запустить код, подобный следующему:
>>> type(3)
<class Number>
>>> type(3+3)
<class GreaterThan5>
>>> 3.doSomething()
0
>>> (3 + 3).doSomething()
I am 6
>>> (7 - 3).doSomethingElse()
>>>
Здесь важно автоматическое преобразование типов. Насколько я знаю, ни один из современных языков не позволяет вам так много возиться с целыми числами.
В конце концов, вы можете делать в своем коде все, что угодно. Пока люди, читающие это могут понять сразу. Так что полиморфная рассылка целых чисел или чего-то необычного должна иметь действительно веские аргументы.