Lisp-大小可变的列表列表

Lisp-大小可变的列表列表,lisp,common-lisp,Lisp,Common Lisp,我必须用lisp表示棋盘游戏。要做到这一点,我必须创建一个功能,建立董事会 此函数接收一个整数,该整数表示原始列表要包含的子列表的数目。每个子列表都有一个不同的大小,以3*n的比例增长。 例如,如果使用数字3调用函数,它将创建一个包含3个子列表的列表,第一个子列表包含3个位置,第二个子列表包含6个位置,第三个子列表包含9个位置 此外,每个位置都需要用´*初始化 要做到这一点,我想我必须对makelist进行递归调用,但我似乎做得不对。我试图用“dotimes”循环来做这件事,但我没有成功 到目前

我必须用lisp表示棋盘游戏。要做到这一点,我必须创建一个功能,建立董事会

此函数接收一个整数,该整数表示原始列表要包含的子列表的数目。每个子列表都有一个不同的大小,以3*n的比例增长。 例如,如果使用数字3调用函数,它将创建一个包含3个子列表的列表,第一个子列表包含3个位置,第二个子列表包含6个位置,第三个子列表包含9个位置

此外,每个位置都需要用´*初始化

要做到这一点,我想我必须对makelist进行递归调用,但我似乎做得不对。我试图用“dotimes”循环来做这件事,但我没有成功

到目前为止,我已经:

(defun faz-tabuleiro (n_aneis)
    (make-list n_aneis :initial-element (...)

Wich创建了主列表,但是如何用正确的大小表示其中的子列表呢?

这是否符合您的要求

(defun make-table (n)
  (loop :for i :from 1 :to n
        :collect (make-list (* i 3) :initial-element "*")))

这是你想要的吗

(defun make-table (n)
  (loop :for i :from 1 :to n
        :collect (make-list (* i 3) :initial-element "*")))

映射为子列表长度的数字列表。此映射使用一个函数,返回使用初始元素初始化的右列表。

映射子列表长度的数字列表。为该映射使用一个函数,该函数返回用初始元素初始化的正确列表。

如果问题是可能的家庭作业,最好不要给出完整的解决方案…@Rainer Joswig-家庭作业标签是在我给出答案后才添加的。是,但他的措辞很明显:“我必须……”与“我想……”相比。@Rainer Joswig-你对“拥有”这个词读了很多,特别是考虑到提问者可能不是英语母语人士。当我回答这个问题时,我不认为这是家庭作业。这个问题没有提到家庭作业、班级、作业、学校或大学。正如卢克所说,这是我的错误,我不是以英语为母语的人,我是葡萄牙人。我以后会更加小心,加上家庭作业标签。如果问题是可能的家庭作业,不给出完整答案是一个好传统…@Rainer Joswig-家庭作业标签是在我给出答案后才加上的。没错,但他的措辞很明显:“我必须……”与“我想……”相比。@Rainer Joswig-你对“拥有”这个词读了很多,特别是考虑到提问者可能不是英语母语人士。当我回答这个问题时,我不认为这是家庭作业。这个问题没有提到家庭作业、班级、作业、学校或大学。正如卢克所说,这是我的错误,我不是以英语为母语的人,我是葡萄牙人。以后我会更加小心,加上家庭作业标签。