http://thesz.livejournal.com/ ([identity profile] thesz.livejournal.com) wrote in [personal profile] metaclass 2013-01-14 01:39 am (UTC)

>В библиотеках комбинаторов обычно ничего такого мудрёного нету, чтоб их целесообразно было ещё какими-то DSL, EDSL или подъязыками называть.

Вообще-то, именно их и называют EDSL. Это синонимы.

Если мы повторяем синтаксис стороннего языка в языке носителе, то это называется EDSL. Так уж получилось, что применение функций и абстрагирование позволяет повторить (с точностью до синтаксических преобразований) синтаксис многих других языков.

Термин появился задолго до того, как вы стали изучать Scala. Я столкнулся с ним в 1999-ом, в контексте комбинаторов синтаксического разбора.

>Вот, смотрите:

Я не могу это читать. У меня голова по-другому работает. Я не для того решил в 1998 году уйти от объектов и наследований, чтобы возвращаться обратно.

Дайте мне алгебраическую структуру и я счастлив.

>А как они помогут пронаблюдать имя переменной лямбды и имена свободных термов?

Применением.

instance (B a, G b) => G (a -> b) where
    dadam f = do
        a <- inventArg
        b <- applyG f a
        dadam b
Примерно так.

Внутри функции f будут известны её параметры, как переменные.

См. также REPA и Accelerate.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting