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

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

Ответы [ 8 ]

18 голосов
/ 17 июня 2010

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

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

11 голосов
/ 17 июня 2010

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

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

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

(=/=) 5 6

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

5 =/= 6

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

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

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

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

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

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

Смежный вопрос

1 голос
/ 22 мая 2011

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

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

1 голос
/ 17 июня 2010

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

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

0 голосов
/ 22 мая 2011

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

0 голосов
/ 17 июня 2010
  1. Ничего из того, что я знаю
  2. Не намного сложнее, чем любой другой оператор, такой как +=, ?? и т. Д.

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

0 голосов
/ 17 июня 2010

A Поиск кода Google для =/= ничего не дает, так что я бы ничего не сказал, мейнстрим.

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

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

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

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

...