Object 在Scheme中克隆对象
我试图在Scheme中克隆一个对象,类似于Object 在Scheme中克隆对象,object,racket,cloning,Object,Racket,Cloning,我试图在Scheme中克隆一个对象,类似于 (define o1 (new cl% [a 1] [b 2])) 然后 (define o2 o1) 当我使用set时!在o1上,它与o1一起改变o2。但我想要具有相同属性的独立克隆。我该怎么办?写一个复制方法。然后: (define o2 (copy-cl%-thingy o1)) 像这样: (define (new aval bval) `(cl% [a ,aval] [b ,bval])) (define cl
(define o1
(new cl%
[a 1] [b 2]))
然后
(define o2 o1)
当我使用set时!在o1上,它与o1一起改变o2。但我想要具有相同属性的独立克隆。我该怎么办?写一个复制方法。然后:
(define o2 (copy-cl%-thingy o1))
像这样:
(define (new aval bval)
`(cl% [a ,aval] [b ,bval]))
(define cl%-aval caddr)
(define cl%-bval cadddr)
(define (copy-cl%-thingy o)
(new (cl%-aval o) (cl%-bval o)))
“当我在o1上使用set!时,它会随着o1改变o2。”这是不可能的。显示您的代码。