Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, lomeo, Вы писали:
L>>Здравствуйте, hardcase, Вы писали:
L>>>>Для кодогенерилки достаточно динамики, нафиг тут типы выводить?
H>>>foreach — макрос выводящий типы. Как его на кодогенераторах сделать?
L>>Знаешь, я как-то об этом уже писал, но поиском не нашёл. Если вкратце, то такие вещи имхо нужно делать средствами языка. Например, в Haskell это будет функция. А типы выведет компилятор.
H>Макросы — это и есть средство языка
Мы на языке описываем его самое и получаем новый язык — чуть более удобный и богатый.
Вот только проблема в том что не нужно людям средство создание языка. Им нужно async\yield\do-нотация\query comprehension\type providers и прочие вещи, которые вы называете "хардкодом компилятора". Именно эти хардкоды компилятора делают язык популярным. А создание средств для того чтобы каждый мог поменять синтаксис языка, с непонятными последствиями для самого языка (см рассуждения Липперта на тему синтаксиса yield), занятие конечно полезное, но вряд ли пипл будет хавать.
ЗЫ. Макросы — не средства языка, а средства
компилятора языка. А то и T4 тоже средства языка получаются.