Beberapa bahasa menawarkan ini - sampai batas tertentu.
Mungkin bukan sebagai contoh spesifik Anda , tetapi ambil contoh garis 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
Jadi, beberapa bahasa tidak masalah dengan beberapa perbandingan, selama Anda mengekspresikannya dengan benar.
Sayangnya, itu tidak berfungsi seperti yang Anda harapkan untuk perbandingan.
>>> 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
>>>
"Apa maksudmu mengembalikan True atau 4?" - Mempekerjakan setelah Anda
Salah satu solusi dalam hal ini, setidaknya dengan Python, adalah menggunakannya sedikit berbeda:
>>> 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
>>>
Sunting: Berikut ini juga akan melakukan sesuatu yang serupa, lagi dengan 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
>>>
Jadi, bahasa apa pun yang Anda gunakan, mungkin bukan karena Anda tidak bisa melakukannya, hanya saja Anda harus terlebih dahulu melihat lebih dekat bagaimana logika sebenarnya bekerja. Biasanya itu hanya masalah mengetahui apa yang sebenarnya Anda minta 'bahasa' untuk memberitahu Anda.