2011-11-29 6 views
1

私はlispを使ってボードゲームを表現する必要があります。そのためには、ボードを構築する関数を作成する必要があります。Lisp - 可変サイズのリストのリスト

この関数は、元のリストに含めるサブリストの数を表す整数を受け取ります。このサブリストの各々は、3 * nの割合で成長する異なるサイズを有する。 例として、関数が番号3で呼び出された場合、3つのサブリストを持つリストが作成されます。最初は3つの位置、2つ目は6つ、3つ目は9です。

また、それぞれの位置は'*で初期化する。

これを行うには、私はmake-listへの再帰呼び出しをしなければならないと思いますが、私はそうすることはできません。私はそれを行うために 'dotimes'サイクルを使用しようとしましたが、私はそれで成功しませんでした。

これまでのところ、私が持っている:

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

WICHは、メインのリストを作成しますが、どのように私は右のサイズと内部のサブリストを表現することができますか?

+1

はこの宿題ですか? –

+0

これは学校プロジェクトです。 –

答えて

5

これは必要な操作ですか?

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

私はそれを試すつもりです。 –

+3

質問が宿題の可能性がある場合、それは完全な解決策を与えることではない良い伝統です... –

+1

@Rainer Joswig - 宿題タグは、私の答えを与えた後に追加されました。 –

3

サブリストの長さである数字のリストをマップします。このマッピングには、初期要素で初期化された右のリストを返す関数を使用します。