From 960e4410f76801356ebd42801c914b2910a302a7 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Mon, 18 Nov 2024 08:21:58 -0300 Subject: v0 migration to mkwb --- src/content/pastebins/2021/09/02/sicp-3-19.adoc | 42 +++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/content/pastebins/2021/09/02/sicp-3-19.adoc (limited to 'src/content/pastebins/2021/09/02/sicp-3-19.adoc') diff --git a/src/content/pastebins/2021/09/02/sicp-3-19.adoc b/src/content/pastebins/2021/09/02/sicp-3-19.adoc new file mode 100644 index 0000000..75ee346 --- /dev/null +++ b/src/content/pastebins/2021/09/02/sicp-3-19.adoc @@ -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 +``` -- cgit v1.2.3