touchup
parent
f60f5a1b9e
commit
6aee273209
@ -1,20 +1,22 @@
|
|||||||
#lang br
|
#lang br
|
||||||
|
|
||||||
(define the-ks (make-hash))
|
(define pointer-ks (make-hash))
|
||||||
(define xs (make-hash))
|
(define results (make-hash))
|
||||||
|
|
||||||
(define is '(a b (c . h) d e f g h i j))
|
(define vals '(a b (h) d e f g h i j))
|
||||||
(for ([(v i) (in-indexed is)]
|
|
||||||
#:unless (hash-has-key? xs i))
|
(for ([(val i) (in-indexed vals)])
|
||||||
(report* xs i)
|
(hash-ref! results i (λ ()
|
||||||
(hash-set! xs i
|
(report* results i)
|
||||||
(let/cc k
|
(let/cc pointer-k
|
||||||
(let ([v (cond
|
(let ([v (cond
|
||||||
[(pair? v) (hash-set! the-ks (cdr v) k) (car v)]
|
[(pair? val) (hash-set! pointer-ks (car val) pointer-k) (car val)]
|
||||||
[else v])])
|
[else val])])
|
||||||
(define tk (hash-ref the-ks v #f))
|
(define pointer (hash-ref pointer-ks v #f))
|
||||||
(cond
|
(cond
|
||||||
[tk
|
[pointer (hash-remove! pointer-ks v)
|
||||||
(hash-remove! the-ks v)
|
(pointer (format "~a xref" v))]
|
||||||
(tk (format "~a xref" v))]
|
[else v]))))))
|
||||||
[else (format "just ~a" v)])))))
|
|
||||||
|
(for/list ([i (in-range (length (hash-keys results)))])
|
||||||
|
(hash-ref results i))
|
Loading…
Reference in New Issue