[racket] Can impersonator be a cache?

From: Alexander D. Knauth (alexander at knauth.org)
Date: Fri Aug 15 08:45:59 EDT 2014

Why not just define a new version of object-a that does that?
You probably have a good reason, but what is it?  
Is it to change the result of struct->vector, allow (object a b c) as a match pattern to match ref, or what?  

On Aug 15, 2014, at 6:42 AM, Roman Klochkov <kalimehtar at mail.ru> wrote:

> I have
> (struct object (a b c))
> (struct reference (id data))
> 
> Let `ref' -- an instance of `reference'.
> 
> I want, that (object-a ref) call my own (ref-get object-a ref)
> 
> (define (ref-get accessor ref)
>   (unless (weak-box-value (ref-data ref))
>      (set-ref-data! ref (make-weak-box (load-data (ref-id ref)))))
>   (accessor (weak-box-value (ref-data ref))))
> 
> Is it possible? 
> I found `impersonate-struct', but it is not struct itself (no `id' field). 
> I can add `prop:impersonator-of',. but how to redirect accessors?
> 
> -- 
> Roman Klochkov
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users



Posted on the users mailing list.