Использует ли какой-либо язык "=/=" для обозначения оператора неравномерности

  • Использует ли какой-либо язык программирования =/= для не равных?
  • Существуют ли какие-либо лексические трудности для сканера для распознавания такого оператора? Или это было исторически?

[Примечание: это НЕ вопрос домашней работы. Мне просто интересно.]

Ответы

Ответ 1

Эрланг использует его для обозначения точно не равного.

Также, как правило, не должно быть никаких трудностей, чтобы сканеры распознавали такой токен (доказательство на примере: Erlang; -)

Ответ 2

В Erlang =/=, как указано Bytecode Ninja, означает "точно не равно". Обозначение Erlang сильно зависит от Prolog, поэтому неудивительно, что Prolog использует этот оператор тоже. Существует несколько языков, которые делают определяющие операторы тривиальными. Хаскелл был бы одним из таких. =/= не определен в стандарте Haskell, но определение его было бы тривиальным:

(=/=) x y = ....

Затем это можно использовать в синтаксисе вызова функции:

(=/=) 5 6

Или как встроенный оператор:

5 =/= 6

Разумеется, семантика будет зависеть от реализации.

Я думаю, что пользователи Common Lisp weenies могли написать какой-то читательский макрос, который тоже использовал эту последовательность, но я не уверен.

Ответ 3

  • Не один из основных. Однако можно легко создать такой язык.
    • (Как уже упоминалось, Erlang и некоторые другие языки уже есть)
  • Неа. Если у вас нет действительно странного языка, нет ничего особенного в этом операторе в плане лексического анализа.

Кстати, Java имеет:

  • > (больше)
  • >> (подписанная правая смена)
  • >>= (подписное назначение смещения сдвига справа)
  • >>> (беззнаковый сдвиг вправо)
  • >>>= (присваивание смещения без знака)
  • > (закрывающий параметр типового типа, вложенный)
    • >>, >>>, >>>>,...

и все они работают нормально.

Связанный с этим вопрос

Ответ 4

Да, Эрланг использует этот символ как одно из своих представлений для "не равно".

Erlang - это язык с сильной поддержкой concurrency, первоначально разработанный в Ericsson и используемый для написания программного обеспечения для телефонных станций, но теперь получает значительную популярность за пределами.

Ответ 5

Вы можете проверить Fortress Intiveductive Slides. Fortess использует =/= для проверки неравенства. Полагаю, вы ищете читаемость на языках. Если это случай, то я могу сказать, что код Fortess может быть превращен в очень аккуратный вид TeX.

Старый сайт проекта Fortress (перемещен на java.net)

Ответ 6

A поиск кода Google для =/= не имеет ничего очевидного, поэтому я бы не сказал ничего общего.

Не было бы проблем с любым оператором, который вам нужен, компьютер просто ищет =/= вместо != или <> или независимо от того, что использует ваш язык.

Есть некоторые действительно странные языки, такие как BrainFuck language (ссылка)

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.    <<+++++++++++++++.>.+++.——.——–.>+.>.

Это код для "Hello World".

Ответ 7

  • Нет, что я знаю
  • Не намного сложнее, чем любой другой оператор, например +=, ?? и т.д.

Однако очень тяжело набирать такой оператор. Даже != будет проще.

Ответ 8

Предположительно, любой язык с возможностью перегрузки оператора мог бы использовать этот оператор, если бы вы этого хотели.