Algunos idiomas ofrecen esto, hasta cierto punto.
Tal vez no como su ejemplo específico , pero tome por ejemplo una línea de Python:
def minmax(min, max):
def answer(value):
return max > value > min
return answer
inbounds = minmax(5, 15)
inbounds(7) ##returns True
inbounds(3) ##returns False
inbounds(18) ##returns False
Por lo tanto, algunos idiomas están bien con comparaciones múltiples, siempre que lo exprese correctamente.
Desafortunadamente, no funciona como esperarías para las comparaciones.
>>> def foo(a, b):
... def answer(value):
... return value == a or b
... return answer
...
>>> tester = foo(2, 4)
>>> tester(3)
4
>>> tester(2)
True
>>> tester(4)
4
>>>
"¿Qué quieres decir con que devuelve True o 4?" - el alquiler después de ti
Una solución en este caso, al menos con Python, es usarlo de manera ligeramente diferente:
>>> def bar(a, b):
... def ans(val):
... return val == a or val == b
... return ans
...
>>> this = bar(4, 10)
>>> this(5)
False
>>> this(4)
True
>>> this(10)
True
>>> this(9)
False
>>>
EDITAR: Lo siguiente también haría algo similar, nuevamente en Python ...
>>> def bar(a, b):
... def answer(val):
... return val in (a, b)
... return answer
...
>>> this = bar(3, 5)
>>> this(3)
True
>>> this(4)
False
>>> this(5)
True
>>>
Por lo tanto, sea cual sea el idioma que esté utilizando, puede que no sea que no pueda hacerlo, solo que primero debe echar un vistazo más de cerca a cómo funciona realmente la lógica. Por lo general, es solo una cuestión de saber qué es lo que realmente está 'pidiendo' que le diga el idioma.