?

Log in

No account? Create an account

Метапрограммирование в Агде и немного философии - Excelsior

Aug. 27th, 2013

09:49 am - Метапрограммирование в Агде и немного философии

Previous Entry Share Next Entry

Comments:

[User Picture]
From:xeno_by
Date:August 29th, 2013 09:34 am (UTC)
(Link)
val splicedTree = q"def +(x: Int, y: Int) = x * y"
q"val x = 1; $splicedTree; +(x, 1)"
(Reply) (Parent) (Thread)
From:Valentin Budaev
Date:August 29th, 2013 10:04 am (UTC)
(Link)
Ну сперва (при раскрытии _определения_ макроса, где цитата была) связывание + будет стандартное, со стандартным плюсом, а потом когда макрос раскроется, то анализируется раскрытый код и если с марками все ок, то + из сплайсинга перекроет старое связывание.

ЗЫ: я понял, к чему вы. с такой схемой типизировать цитаты принципиально невозможно - если только не добавлять в тип цитаты информацию о том, какие связывания она добавляет.

Edited at 2013-08-29 10:06 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]
From:xeno_by
Date:August 29th, 2013 03:32 pm (UTC)
(Link)
Ага, понял. Мы пока что не замахиваемся на типизацию квазицитат, так что это не проблема.
(Reply) (Parent) (Thread)