2017-02-10 13 views
0

Пакет ALEXANDRIA, по-видимому, широко используется в сообществе общего пользования. Тем не менее, единственная документация, которую я нашел, представляет собой черновик версии руководства, что приводит к нескольким вопросам:Руководство и реализация Alexandria Lisp

1) Существует ряд макросов, таких как reversef, которые перечислены под заголовком «Conses» , но также, кажется, работают на «последовательности» в целом:

(defparameter vec (vector 1 2 3)) 
#(1 2 3) 
(alexandria:reversef vec) 
#(3 2 1) 
vec 
#(3 2 1) 

есть некоторые технические причины они ставятся под «Conses»?

2) Есть ли способ просмотреть макросы, чтобы посмотреть, как они построены? Выполнение макроэкспозиции на них достигает стены:

(macroexpand '(alexandria:rotate vec)) 
(ALEXANDRIA.0.DEV:ROTATE VEC) 

3) Есть ли более формальная спецификация для Александрии?

ответ

2

REVERSEF следует указывать под последовательностями.

ROTATE не является макросом. Это функция . Использование macroexpand не повлияет на функцию, так как это не макрос.

+0

К сожалению, спасибо 'macroexpand'. – davypough

+0

Также имел возможность использовать «alexandria: map-product» в последнее время, о чем говорится в руководстве по проекту, возвращает список, но он также может возвращать вектор. Доступна ли дополнительная документация Александрии? – davypough

 Смежные вопросы

  • Нет связанных вопросов^_^