2017-02-10 91 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