2017-02-10 38 views
0

ALEXANDRIA包似乎在Common-Lisp社区中被广泛使用。但是,我发现的唯一文档是手册的草稿版本,这会导致几个问题: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