RosettaCodeData/Task/Periodic-table/Scheme/periodic-table-2.scm

10 lines
248 B
Scheme

(define position*
(let ((memo (make-vector 118 #f)))
(lambda (n)
(let* ((mi (- n 1))
(mp (vector-ref memo mi)))
(or mp
(let ((p (position n)))
(vector-set! memo mi p)
p))))))