Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ключевые слова, eDSL в Nemerle

5
17 декабря 2008 года
hardcase
4.5K / / 09.08.2005
Создаю специализированный eDSL (embedded domain specific language) с использованием Nemerle. Столкнулся с проблемой выбора ключевых слов для конструкций условия if, when и unless.
Почему этих конструкции 3. Это выглядит странно, но язык не позволяет определить конструкции if с необязательным else. Таким образом имеем три вариации:
  • if( predicate ) true_expression else false_expression
  • when( predicate ) true_expression
  • uness( predicate ) false_expression
Если я сделаю аналогичные конструкции, но со своей собственной логикой поведения, они будут экранировать уже существующие, а это нежелательно, так как требуется использовать оба варианта.

На данный момент для "моей" конструкции условия с else-частью использую: fi( predicate ) true_expression else false_expression. Для when и unless ничего ласкающего слух не придумал...

З.Ы. Есть мысли всетаки сделать экранирующие конструкции, только придется изучать вычисленный тип "предиката" и в зависимости от этого подставлять или свою логику, или классические конструкции. Система программирования позволяет делать такие финты, правда для этого у меня маловато опыта.
241
17 декабря 2008 года
Sanila_san
1.6K / / 07.06.2005
А "венгерская нотация" типа myif ( predicate ) true_expression else false_expression не прокатит? Ну или hcif.
5
17 декабря 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Sanila_san
А "венгерская нотация" типа myif ( predicate ) true_expression else false_expression не прокатит? Ну или hcif.


Не слишком весело выглядит.
Для when использовал такую штуку:
when true ( predicate ) true_expression
а для unless:
when false ( predicate ) false_expression
Во всяком случае понятно, чего происходит.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог