LINUX.ORG.RU

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

Исправление no-such-file, (текущая версия) :

Я тут чуть-чуть подумал, и понял что мой наивный вариант действительно наивный и не работает, но не потому что «должно быть» а именно из-за «внутри aif могут быть макросы, которые раскрываются». Действительно нужно про каждую форму знать, раскрывается она или нет и несёт ли it внутри какой-то специальный смысл.

Но интересно, а в ракетке, например в (loop ... (collect it)) или чём-то подобном оно нормально работает?

Символ определён всегда.

Абстрактный символ нужно и указывать абстрактно, а не как анафору

(aif (+ 2 2) `(,(intern "IT") is ,it))
> (IT IS 4)

symbol «it» is the one we want to capture

Вот именно, мы его capture и используем специальным образом. Нельзя рассчитывать внутри такого макроса, что it будет вести себя как обычный символ.

Исправление no-such-file, :

Я тут чуть-чуть подумал, и понял что мой наивный вариант действительно наивный и не работает, но не потому что «должно быть» а именно из-за «внутри aif могут быть макросы, которые раскрываются». Действительно нужно про каждую форму знать, раскрывается она или нет и несёт ли it внутри какой-то специальный смысл.

Но интересно, а в ракетке, например в (loop ... (collect it)) или чём-то подобном оно нормально работает?

Символ определён всегда.

Абстрактный символ нужно и указывать абстрактно, а не как анафору

(aif (+ 2 2) `(,(intern "IT") is ,it))
> (IT IS 4)

Исправление no-such-file, :

Я тут чуть-чуть подумал, и понял что мой наивный вариант действительно наивный и не работает, но не потому что «должно быть» а именно из-за «внутри aif могут быть макросы, которые раскрываются». Действительно нужно про каждую форму знать, раскрывается они или нет и несёт ли it внутри какой-то специальный смысл.

Но интересно, а в ракетке, например в (loop ... (collect it)) или чём-то подобном оно нормально работает?

Символ определён всегда.

Абстрактный символ нужно и указывать абстрактно, а не как анафору

(aif (+ 2 2) `(,(intern "IT") is ,it))
> (IT IS 4)

Исходная версия no-such-file, :

Я тут чуть-чуть подумал, и понял что мой наивный вариант действительно наивный и не работает, но не потому что «должно быть» а именно из-за «внутри aif могут быть макросы, которые раскрываются». Действительно нужно про каждую форму знать, раскрывается они или нет и несёт ли it внутри какой-то специальный смысл.

Но интересно, а в ракетке, например в (loop ... (collect it)) или чём-то подобном оно нормально работает?