Skip to content

Instantly share code, notes, and snippets.

Created May 24, 2016 12:58
#lang racket
(require srfi/69)
(define neumann
(let ((table (make-hash-table eqv?)))
(hash-table-set! table 0 '())
(lambda (n)
(define (get key)
(let ((val (hash-table-ref/default table key #f)))
(if val
key
(get (- key 1)))))
(define (put key)
(if (= key n)
(hash-table-ref table n)
(let ((val (hash-table-ref table key)))
(let ((key (+ key 1)))
(hash-table-set! table key (cons val val))
(put key)))))
(put (get n)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment