This commit is contained in:
Justin Ethier 2017-09-05 18:33:22 -04:00
parent 94df8603c6
commit a274cfa6e1

View file

@ -1,26 +0,0 @@
;;; MAZE -- Constructs a maze on a hexagonal grid, written by Olin Shivers.
(import (scheme base) (scheme read) (scheme write) (scheme time))
(define (get-set-root s)
(let lp ((r s));; Find the last pair
(let ((next (cdr r)));; in the list. That's
(cond ((pair? next) (lp next));; the root r.
(else
(if (not (eq? r s));; Now zip down the list again,
(let lp ((x s));; changing everyone's cdr to r.
(let ((next (cdr x)))
(cond ((not (eq? r next))
(set-cdr! x r)
(lp next))))))
r)))));; Then return r.
(write
(get-set-root '(
(a . 1)
(b . 2)
(c . 3)
(d . 4)
(e . 5)
)))