我必须使用lisp代表棋盘游戏。要做到这一点,我必须创建一个构建板的功能。
此函数接收一个整数,表示原始列表所具有的子列表的数量。这些子列表中的每一个都具有以3 * n比例增长的不同大小。 例如,如果使用数字3调用函数,它将创建一个包含3个子列表的列表,第一个包含3个位置,第二个包含6个,第三个包含9个。
此外,每个职位都需要用'*。
初始化要做到这一点,我想我必须对make-list进行递归调用,但我似乎无法做到这一点。我试图使用'dotimes'循环来做到这一点,但我没有任何成功。
到目前为止,我有:
(defun faz-tabuleiro (n_aneis)
(make-list n_aneis :initial-element (...)
创建主列表,但是如何用正确的大小来表示内部的子列表?
答案 0 :(得分:5)
这样做你想要的吗?
(defun make-table (n)
(loop :for i :from 1 :to n
:collect (make-list (* i 3) :initial-element "*")))
答案 1 :(得分:3)
映射作为子列表长度的数字列表。使用此映射的函数返回使用initial元素初始化的右侧列表。