; list rotations
(define (rots xs)
(define (rot1 xs)
(append (cdr xs) (list (car xs))))
(do ((n (length xs) (- n 1))
(zs (list xs) (cons (rot1 (car zs)) zs)))
((= n 1) zs)))
(display (rots '(a b c d e)))
OyBsaXN0IHJvdGF0aW9ucwoKKGRlZmluZSAocm90cyB4cykKICAoZGVmaW5lIChyb3QxIHhzKQogICAgKGFwcGVuZCAoY2RyIHhzKSAobGlzdCAoY2FyIHhzKSkpKQogIChkbyAoKG4gKGxlbmd0aCB4cykgKC0gbiAxKSkKICAgICAgICh6cyAobGlzdCB4cykgKGNvbnMgKHJvdDEgKGNhciB6cykpIHpzKSkpCiAgICAgICgoPSBuIDEpIHpzKSkpCgooZGlzcGxheSAocm90cyAnKGEgYiBjIGQgZSkpKQ==