Мне было интересно использовать тернарные операторы вне программирования. Например, в тех надоедливых классах исчисления, которые необходимы для получения степени CS. Может ли человек описать что-то вроде гиперболической функции с тернарным оператором, например: 1/x? 1/х : бесконечность; Это предполагает, что x является положительным числом с плавающей запятой и должно говорить, что если x != 0, то функция возвращает 1/x, иначе она возвращает бесконечность. Будет ли это обойти всю потребность в ограничениях?
тернарные операторы для класса исчисления
Ответы (2)
Я не совсем уверен в конкретном вопросе, но да, тройка может ответить на любой вопрос, поставленный как «если/иначе» или «если и только если, иначе». Однако традиционно математика не записывается в условном формате с каким-либо реальным управлением потоком. 'if' и другие механизмы управления потоком позволяют коду выполняться по-разному, но с большей частью математики поток один и тот же; только результаты разные.
Математически любой оператор можно эквивалентно описать как функцию, например a + b = add(a,b)
; обратите внимание, что это верно и для программирования. В любом случае бинарные операторы являются распространенным способом описания функций с двумя аргументами, потому что таким образом их легко читать.
Тернарные операторы труднее читать, и, соответственно, они менее распространены. Но, поскольку математическая типография не ограничивается одномерной текстовой строкой, многие математические операторы имеют большую арность — например, определенный интеграл, возможно, имеет 4 аргумента (начало, конец, подынтегральная функция и дифференциал).
Чтобы ответить на ваш второй вопрос: нет, это не устраняет необходимости в ограничениях; вы могли бы так же легко сказать, что альтернативой было 42
вместо infinity
.
Я также упомяну, что ваш пример 1/x
в любом случае не соответствует программному использованию тернарного оператора ?:
. Обратите внимание, что 1/x
не является логическим; похоже, вы пытаетесь использовать ?:
для обработки условия, похожего на исключение, которое лучше подходит для формы try/catch.
Кроме того, когда вы говорите: «Это предполагает, что x является положительным числом с плавающей запятой», как читатель должен это знать? Вы можете вспомнить, что существует математическая нотация, которая решает эту конкретную проблему, указывая пределы сверху...
x ? 1/x : infinity
, а не1/x ? 1/x : infinity
. - person David Hammen   schedule 13.09.2012