Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет superhuman ([info]superhuman)
@ 2016-06-09 23:23:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Понял, как писать достаточно сложные макросы на схеме. Но получается некрасиво. Начинаю ощущать на себе, как сказал папа ФП, macros tend to be monolithic, highly recursive, ad hoc, and requiring a revelation to write, and the equal revelation to understand*.

The familiar idioms of a function call and a functional composition -- let alone higher-level combinators such as fold -- do not easily apply. Кажется, я понял, как их компоновать через syntax-case и with-syntax. Однако, цена за это - см.в., монолитность и слишком много рекурсии. (Речь, само собой, о шаблонных макросах, а не defmacro).

Макросы должны быть компонуемыми и лаконичными. В чём причина обратного? Непонятно пока что. Но без этого модульность декларативного ЯП рушится на глазах, а в модульности и есть сила ФП. Естественно, модульность это не про модули, а про функции первого класса и ФВП, как некоторые пытались объяснить*.