LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

кстати, это же ты вроде писал Scheme4D — CTFE компиляциями, наподобие InterLib ?

Ну в тему погружался, нормальной реализации не сделал.

вот вопрос: на расте подобное было бы написать проще/легче/сложнее и в чём, чем на D???

В D всё просто. Получаем текст, выплёвываем текст. Это как старые лисповые макросы, произвольная функция, меняющая вход на выход. В расте макросы как в схеме - гигенические, паттерн-матчинг по сути, на своём микроязыке (тоже как в схеме). На них сложно написать такие извраты. Правда в расте есть т.н. compiler plugins, с ними вроде можно делать вообще что угодно. Думаю на них легко можно такое написать. Причём если в D «достучаться» до информации об объявленных переменных было невозможно, когда я это пробовал, то тут вроде доступно всё, наверное можно очень классную интеграцию сделать с хостовым языком.

Исходная версия Legioner, :

кстати, это же ты вроде писал Scheme4D — CTFE компиляциями, наподобие InterLib ?

Ну в тему погружался, нормальной реализации не сделал.

вот вопрос: на расте подобное было бы написать проще/легче/сложнее и в чём, чем на D???

В D всё просто. Получаем текст, выплёвываем текст. Это даже круче, чем лисповые макросы, те всё равно ограничены S-выражениями. В расте макросы как в схеме - гигенические, паттерн-матчинг по сути. На них сложно написать такие извраты. Правда в расте есть т.н. compiler plugins, с ними вроде можно делать вообще что угодно. Думаю на них легко можно такое написать. Причём если в D «достучаться» до информации об объявленных переменных было невозможно, когда я это пробовал, то тут вроде доступно всё, наверное можно очень классную интеграцию сделать с хостовым языком.