Spec-Zone.ru › Haskell 9

6.1.3. Сводка по похищенному синтаксису

Включение опции, которая активирует специальный синтаксис, может привести к невозможности компиляции кода Haskell 98, возможно, из-за использования имени переменной, которое стало зарезервированным словом. В этом разделе перечислены синтаксические конструкции, «похищенные» расширениями языка. Мы используем обозначения и имена нетерминалов из лексического синтаксиса Haskell 98 (см. Документацию Haskell 98). Мы приводим только изменения синтаксиса, которые могут повлиять на работающие программы (т.е. «похищенный» синтаксис). Многие из этих расширений также позволят использовать новый контекстно-свободный синтаксис, но во всех случаях программы, написанные для использования нового синтаксиса, не будут компилироваться без включенной опции.

Существует два класса специального синтаксиса:

  • Новые зарезервированные слова и символы: последовательности символов, которые больше недоступны для использования в качестве идентификаторов в программе.
  • Другой специальный синтаксис: последовательности символов, которые имеют другое значение при включении данной опции.

Следующий синтаксис похищен:

forall

Похищен (в типах) по умолчанию (см. Лексический синтаксис). forall является зарезервированным ключевым словом и никогда не является переменной типа, в соответствии с Предложением GHC #43.

mdo

Похищен: RecursiveDo

foreign

Похищен: ForeignFunctionInterface

rec, proc, -<, >-, -<<, >>-, (|, |)

Похищен: Arrows

?varid

Похищен: ImplicitParams

[|, [e|, [p|, [d|, [t|, [||, [e||

Похищен: QuasiQuotes. Кроме того, это приводит к неоднозначности с синтаксисом списковых включений. Подробности см. в обсуждении квазицитаций.

$(, $$(, $varid, $$varid

Похищен: TemplateHaskell

[varid|

Похищен: QuasiQuotes

⟨varid⟩, #⟨char⟩, #, ⟨string⟩, #, ⟨integer⟩, #, ⟨float⟩, #, ⟨float⟩, ##

Похищен: MagicHash

⟨integer⟩, #(Int|Word)(8|16|32|64)?

Похищен: ExtendedLiterals

(#, #)

Похищен: UnboxedTuples

⟨varid⟩, !, ⟨varid⟩

Похищен: BangPatterns

pattern

Похищен: PatternSynonyms

static

Похищен: StaticPointers

© 2002–2007 The University Court of the University of Glasgow. All rights reserved.
Licensed under the Glasgow Haskell Compiler License.
https://downloads.haskell.org/~ghc/9.12.1/docs/users_guide/exts/stolen_syntax.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API