diff options
-rw-r--r-- | _pastebins/2021-09-02-sicp-exercise-3-19.md | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/_pastebins/2021-09-02-sicp-exercise-3-19.md b/_pastebins/2021-09-02-sicp-exercise-3-19.md new file mode 100644 index 0000000..75ee346 --- /dev/null +++ b/_pastebins/2021-09-02-sicp-exercise-3-19.md @@ -0,0 +1,42 @@ +--- + +title: SICP exercise 3.19 + +date: 2021-09-02 + +layout: post + +lang: en + +ref: sicp-exercise-3-19 + +--- + +```scheme +(define (cycle? l) + (define (rec l x) + (cond + ((null? x) false) + ((eq? l x) true) + (true (rec l (cdr x))))) + (rec l (cdr l))) +``` + +Sample interactive session: + +```scheme +scheme@(guile-user)> (define true #t) +scheme@(guile-user)> (define false #f) +scheme@(guile-user)> +(define (cycle? l) + (define (rec l x) + (cond + ((null? x) false) + ((eq? l x) true) + (true (rec l (cdr x))))) + (rec l (cdr l))) +scheme@(guile-user)> (cycle? '(1 2 3)) +$9 = #f +scheme@(guile-user)> (cycle? (make-cycle '(1 2 3))) +$10 = #t +``` |