preserves/implementations/racket/preserves/preserves/object-id.rkt

10 lines
187 B
Racket

#lang racket/base
(provide object-id)
(define table (make-weak-hasheq))
(define next 0)
(define (object-id x)
(hash-ref! table x (lambda () (let ((v next)) (set! next (+ v 1)) v))))