在 Racket 中,没有set-car!
函数,我想像这样实现它:
(define myset-car!
(lambda (list value)
(if (not (list? list))
#f
(set! list (cons value (cdr list))))))
但它不起作用,如果我这样使用它,它不能改变列表的值:
(define p (list 2 3 4))
(myset-car! p 'a)
p ; p still is (2 3 4)
谁能告诉我为什么?我做的有什么问题?