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)
誰でも理由を教えてもらえますか? 私がしていることの何が問題なのですか?