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