From d3822c5777d97e7381cc26f6ddd21369eba6b875 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Thu, 2 Sep 2021 10:26:44 -0300 Subject: pastebin: Auto-add _pastebins/2021-09-02-sicp-319.md --- _pastebins/2021-09-02-sicp-exercise-3-19.md | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 _pastebins/2021-09-02-sicp-exercise-3-19.md 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 +``` -- cgit v1.2.3