仍然与不考虑强制编程的冲动作斗争,在这里玩耍我有一个程序列表,应该应用于列表中的每个项目,每个项目的结果都应该添加到一个新列表中(我称之为向量在代码中因此 v 和 vec 变量)。最后我得到的只是一个空对象。
(define (inner-loop proc-i item-list i vec)
(if (< i (length item-list))
(begin
(let ((v (cons (proc-i (list-ref item-list i) vec))))
(inner-loop proc-i item-list (+ i 1) v)))
(void)))
(define (outer-loop proc-list item-list i vec)
(if (< i (length proc-list))
(let ((v (cons (inner-loop (list-ref proc-list i) item-list 0 vec) vec)))
(outer-loop proc-list item-list (+ i 1) v))
(void)))
很明显,这是因为 else 语句,但我不知道如何解决这个问题,主要是因为我认为我处理它的方式从根本上是错误的。