Чудех се за използването на троични оператори извън програмирането. Например, в онези досадни часове по математика, които са необходими за степен CS. Може ли човек да опише нещо като хиперболична функция с троичен оператор като този: 1/x? 1/x : безкрайност; Това предполага, че x е положително плаващо число и трябва да каже, че ако x != 0, тогава функцията връща 1/x, в противен случай връща безкрайност. Това би ли заобиколило цялата необходимост от ограничения?
троични оператори за клас на смятане
Отговори (2)
Не съм напълно сигурен по отношение на конкретния въпрос, но да, троичният модул може да отговори на всеки въпрос, зададен като „ако/иначе“ или „ако и само ако, иначе“. Традиционно обаче математиката не се записва в условен формат с някакъв реален контрол на потока. 'if' и други механизми за контрол на потока позволяват на кода да се изпълнява по различни начини, но при повечето математика потокът е един и същ; просто резултатите са различни.
Математически всеки оператор може да бъде еквивалентно описан като функция, както в a + b = add(a,b)
; имайте предвид, че това важи и за програмирането. И в двата случая бинарните оператори са често срещан начин за описване на функции на два аргумента, защото са лесни за четене по този начин.
Тернарните оператори са по-трудни за четене и съответно са по-рядко срещани. Но тъй като математическата типография не се ограничава до едноизмерен текстов низ, много математически оператори имат голяма арност - например определен интеграл вероятно има 4 аргумента (начало, край, интегранд и диференциал).
За да отговоря на втория ви въпрос: не, това не заобикаля необходимостта от ограничения; бихте могли също толкова лесно да кажете, че алтернативата е 42
вместо infinity
.
Също така ще спомена, че вашият 1/x
пример така или иначе не съвпада с програмното използване на троичния оператор ?:
. Обърнете внимание, че 1/x
не е булево; изглежда, че се опитвате да използвате ?:
за обработка на състояние, подобно на изключение, което би било по-подходящо за формуляр за опит/улавяне.
Освен това, когато кажете „Това предполага, че x е положително плаващо число“, как читателят трябва да знае това? Може би си спомняте, че има математическа нотация, която решава този специфичен проблем чрез посочване на граници отгоре....
x ? 1/x : infinity
, а не1/x ? 1/x : infinity
. - person David Hammen   schedule 13.09.2012