2012-11-08 47 views
3

在對多個索引進行求和時,是否可以選擇編寫迭代層?替代Lisp中的層次迭代

+0

也許你可以提供一個你想要的替代方案的例子。 –

+0

一個人使用'loop' –

回答

4

如果你有多維數組A,可以遍歷其元素是這樣的:

(dotimes (i (array-total-size a)) 
    (my-function (row-major-aref tmp i))) 

(loop for x across (make-array len :displaced-to a) do 
    (my-function x)) 

(map nil #'my-function (make-array len :displaced-to a)) 

其中my-function是函數,它可以完成你想要的單個數組元素。

此外,你可以看看array-row-major-index

+0

非常感謝,這是非常有幫助的。 – category