Делает любое использование языка “= / =” для обозначения не - равняются оператору

  1. Делает любое использование языка программирования =/= для не - равный?
  2. Есть ли какие-либо лексические трудности для сканеров для распознавания такого оператора? Или действительно ли это был случай исторически?

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

16
задан John Rasch 17 June 2010 в 14:21
поделиться

6 ответов

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

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

18
ответ дан 30 November 2019 в 17:14
поделиться

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

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

1
ответ дан 30 November 2019 в 17:14
поделиться

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

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

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

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

Это код для «Hello World».

0
ответ дан 30 November 2019 в 17:14
поделиться
  1. Ни одного из известных мне
  2. Не намного сложнее, чем любой другой оператор, например + = , ?? и т. Д.

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

0
ответ дан 30 November 2019 в 17:14
поделиться

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

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

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

(=/=) 5 6

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

5 =/= 6

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

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

11
ответ дан 30 November 2019 в 17:14
поделиться
  1. Не одна из основных. Однако такой язык можно было бы легко создать.
    • (Как уже упоминалось, в Эрланге и некоторых других языках он уже есть)
  2. Нет. Если у вас нет действительно странного языка, в этом операторе нет ничего особенного с точки зрения лексического анализа.

Между прочим, в Java есть:

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

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

Связанный вопрос

2
ответ дан 30 November 2019 в 17:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: