2
私は質問があるCommonLispのnoobです。私は以下の2つの機能を持っています。Dolist評価エラー
ヘルパー関数:
(defun make-rests (positions rhythm)
"now make those positions negative numbers for rests"
(let ((resultant-rhythm rhythm))
(dolist (i positions resultant-rhythm)
(setf (nth i resultant-rhythm) (* (nth i resultant-rhythm) -1)))))
そして主な機能:私は(test-return-rhythms '(1/4 1/8))
を実行すると
(defun test-return-rhythms (rhythms)
(let ((positions '((0 1) (0)))
(result nil))
(dolist (x positions (reverse result))
(push (make-rests x rhythms) result))))
、それが評価されます。((1/4 -1/8) (1/4 -1/8))
しかし、私は予想:(test-return-rhythms '(1/4 1/8))
に評価することは、 :((-1/4 -1/8) (-1/4 1/8))
。
私は間違っていますか?
ああ、この機能が良く 'トグルrests'を命名されることに注意してください。 – danlei
ありがとう! – user998509