diff options
Diffstat (limited to 'src/content/en/pastebins/2021/09/02')
-rw-r--r-- | src/content/en/pastebins/2021/09/02/sicp-3-19.adoc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/content/en/pastebins/2021/09/02/sicp-3-19.adoc b/src/content/en/pastebins/2021/09/02/sicp-3-19.adoc new file mode 100644 index 0000000..166170f --- /dev/null +++ b/src/content/en/pastebins/2021/09/02/sicp-3-19.adoc @@ -0,0 +1,33 @@ += SICP exercise 3.19 +:categories: lisp programming-languages + +[source,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: + +[source,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 +---- |