グラフの座標を循環リストに保存します。
(defun make-circular-list (size &key initial-element)
(let ((list (make-list size :initial-element initial-element)))
(nconc list list)))
(defvar *coordinates* (make-circular-list 1024 :initial-element 0.0))
*coordinates*
これで、新しい座標を設定する必要があるときはいつでも簡単に更新できます。
ただし、一連の座標を使用してグラフに線を描画するライブラリ関数があります。もちろん、この関数は円形の構造では機能しないので、固定長のコピーを作成したいと思います。リストまたは配列で問題ありません。
これまでのところ、キーワードsubseq
を使って試しましたが、失敗します。 または仕事をしますが、リストの各要素を繰り返さないようにしたいと思っていました。make-array
:initial-contents
loop
dotimes
この円形の構造を効率的にコピーしたり、変位した配列の精神で固定長の配列を作成したりすることは可能ですか?