Я хотел бы удалить ключевые слова if ... then ... else ...
, потому что я встраиваю язык / DSL в Haskell.if
, then
и else
передают большое значение во многих областях, и было бы здорово, если бы я мог переопределить (или оставить их неопределенными) их, чтобы отразить природу языка / домена.
Я искал в Google и stackoverflow, но ничего не нашел.(Я нашел старую ветку о том, почему if ... then ... else ...
был включен в качестве ключевых слов в Haskell.)
Моя IDE находится в Лекса, и, если ключевые слова можно удалить, было бы неплохо иметь настройкуизменить ключевые слова if ... then ... else ...
на их обычный шрифт / цвет / полужирный.
Я уже попробовал соглашение об именах if'
для if
и так далее.Это не кажется хорошим, особенно когда я хочу определить if
и if'
, и вместо этого приходится определять if'
и if''
или if1
и if2
.Наличие как if'
, так и if
также может сбивать с толку.(Путаница не является серьезной проблемой в моей ситуации, поскольку пользователи DSL являются программистами на Haskell, но я полагаю, что это может помочь и в других ситуациях).
Подведение итогов ответов на сегодняшний день:
- Используйте расширение
RebindableSyntax
для GHC.Не так широко, как удаление ключевых слов: синтаксис «если-то-еще» в Haskell сохраняется.(Frerich Raabe) - Обходной путь: Используйте очень похожие слова / имена, используя
data Conditional b a = If b (Then a) (Else a)
(применимо только в некоторых контекстах).(CA McCann)
Если RebindableSyntax
является относительно новой функцией, то вряд ли найдется более общий путь, по крайней мере, до следующей версии GHC.