鉴于下面这个可悲的事情,它会生成所有只有两个范围的对 -
[53]> (setq thingie '())
NIL
[54]> (loop for i in (generate-range 0 3) do
(loop for j in (generate-range 4 6) do
(push (list i j) thingie)))
NIL
[55]> thingie
((3 6) (3 5) (3 4) (2 6) (2 5) (2 4) (1 6) (1 5) (1 4) (0 6) (0 5) (0 4))
[56]>
或者,换句话说,这会生成某种二维离散布局。
我将如何构建某种具有任意数量范围的对生成代码?(或生成 n 维离散布局)。
显然,一种解决方案是defmacro
采用一个列表列表并构建n 个循环来执行,但这并不是一个简单的方法。