【发布时间】:2013-03-11 19:49:23
【问题描述】:
我不知道如何在列表中的 n 位置附加一个元素。 例如:
(insert-at new k lis)
(insert-at ’N 2 ’(a b c d e f))
=>
’(a b N c d e f)
可以吗?:
(define (insert-at new k lis)
(cond (( null? lis)
(list new))
(zero? k
(cons new lis))
(else
(cons (car lis)
(insert-at new (- k 1) (cdr lis))))))
【问题讨论】:
-
是的,在
zero? k条件周围加上括号后,就像你在null? lis周围一样。如果(zero? k)不为零,则可能会在(null? lis)下添加对(zero? k)的检查以不同方式处理它(即报告错误或其他内容)。