Exercise 3.18. Write a procedure that examines a list and determines whether it contains a cycle, that is, whether a program that tried to find the end of the list by taking successive cdrs would go into an infinite loop. Exercise 3.13 constructed such lists. ———————————————————————————————————————————————————————————————————————— (define (cyclical? x) (define (go x seen) (cond ((memq x seen) true) ((null? x) false) (else (go (cdr x) (cons x seen))))) (go x '()))