私が持っている16の数字のリストをとり、それを4つの要素のリストに入れて、マジックスクエアのゲームボードを表現しようとしています。私はリストを取って単一のサブリストを返すメソッドを作ったので、今ではこのメソッドを再帰的に使ってフルボードを構築しようとしています。lisp:単一のリストからリストのリストを作成する
しかし私の問題は、私のinitBoardは何を問わず何も返しませんし、他のすべてのメソッドが必要に応じて動作していることを知っています。私のエラーを明確にしていただければ幸いです!
(4 5 15 10 14 11 1 8 9 16 6 3 7 2 12 13)
そして、何出力であるように、私がしたい:
もここで、例えば入力リストであります
((4 5 15 10)(14 11 1 8)(9 16 6 3)(7 2 12 13))
(defun smallList (lst cnt)
(cond ((>= cnt 4) nil)
(t (cons (car lst) (smallList (cdr lst) (+ 1 cnt))))))
(defun isEmpty (lst)
(if lst 1 -1))
(defun initBoard (lst)
(cond ((= (isEmpty lst) -1) nil)
(t (cons (smallList lst 0) (initBoard (cddddr lst))))))
私はあなたの例に対して持っているもので、一度の違いは、おそらくいくつかの並べ替えを引き起こしていること問題の?編集:あなたが投稿した行はまだ返されませんnil、あなたは骨組みを使用していますか? –
いいえ、SBCLを使用していますが、どちらも標準に準拠しており、これが標準コードです。私はブランクのREPLを起動し、あなたが私に与えた機能を貼り付けてから、その行を実行しました。 – djeis
私は考えましたが、私はちょうどチェックしたかったのです。これは非常に奇妙なことです。投稿されたコードは、私が書いたコードから直接コピーされたものです。コピーしたコードを貼り付けて、作業を開始しました。 –