2017-02-10 4 views
0

ALEXANDRIAパッケージは、Common-Lispコミュニティで広く使用されているようです。しかし、私が見つけた唯一のマニュアルは、マニュアルの草案です。これは2つの質問につながります。Alexandria Lispマニュアル&インプリメンテーション

1)のようないくつかのマクロがあります。これらは "Conses"の見出しの下にありますしかし、これも一般的には「順序」のために働くように見える:

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

彼らは「コンス」の下に置かれ、いくつかの技術的な理由がありますか?

2)マクロの内部を見て、それらがどのように構築されているかを確認する方法はありますか?それらにマクロエクスパンドを実行すると、壁に達する:

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

3)アレクサンドリアの正式な仕様はありますか?

答えて

2

REVERSEFは、の配列の下にリストされます。

ROTATEは、マクロではありません。それは関数です。 macroexpandを使用すると、マクロではないため、関数には何の影響も与えません。

+0

申し訳ありません...マクロエクスプレッションに感謝します。 – davypough

+0

最近、 'alexandria:map-product'を最近使用していましたが、ドラフトマニュアルにはリストが返されますが、ベクトルを返すこともできます。追加のアレクサンドリアの資料はありますか? – davypough