diff --git a/pitfall/restructure/pointer.rkt b/pitfall/restructure/pointer.rkt new file mode 100644 index 00000000..8443468b --- /dev/null +++ b/pitfall/restructure/pointer.rkt @@ -0,0 +1,20 @@ +#lang br + +(define the-ks (make-hash)) +(define xs (make-hash)) + +(define is '(a b (c . h) d e f g h i j)) +(for ([(v i) (in-indexed is)] + #:unless (hash-has-key? xs i)) + (report* xs i) + (hash-set! xs i + (let/cc k + (let ([v (cond + [(pair? v) (hash-set! the-ks (cdr v) k) (car v)] + [else v])]) + (define tk (hash-ref the-ks v #f)) + (cond + [tk + (hash-remove! the-ks v) + (tk (format "~a xref" v))] + [else (format "just ~a" v)]))))) \ No newline at end of file