diff options
author | EuAndreh <eu@euandre.org> | 2025-04-18 02:17:12 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2025-04-18 02:48:42 -0300 |
commit | 020c1e77489b772f854bb3288b9c8d2818a6bf9d (patch) | |
tree | 142aec725a52162a446ea7d947cb4347c9d573c9 /src/content/en/pastebins/2021/09/02/sicp-3-19.adoc | |
parent | Makefile: Remove security.txt.gz (diff) | |
download | euandre.org-020c1e77489b772f854bb3288b9c8d2818a6bf9d.tar.gz euandre.org-020c1e77489b772f854bb3288b9c8d2818a6bf9d.tar.xz |
git mv src/content/* src/content/en/
Diffstat (limited to 'src/content/en/pastebins/2021/09/02/sicp-3-19.adoc')
-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 +---- |