From f60f5a1b9e82d948c836474a931a1b45e0849bae Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Wed, 14 Jun 2017 17:38:50 -0700 Subject: [PATCH] ptr --- pitfall/restructure/pointer.rkt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 pitfall/restructure/pointer.rkt 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