Sujet : Re: (Mastermind) puzzle (with 3 digits) -- Elegant (readable) code Sought
De : No_spamming (at) *nospam* noWhere_7073.org (B. Pym)
Groupes : comp.lang.schemeDate : 26. May 2024, 10:11:11
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v2uqqu$3b7ev$1@dont-email.me>
References : 1 2 3 4
User-Agent : XanaNews/1.18.1.6
On 3/1/2024, Andreas Eder wrote:
I would write it without the second define using a named let:
(define (range n)
(let go ((n n) (a '()))
(if (< n 0)
a
(go (1- n) (cons n a)))))
Looks good.
Using "do":
(define (range n)
(do ((i n (- i 1))
(a '() (cons i a)))
((< i 0) a)))
Using "unfold-right" in Gauche Scheme:
(use srfi-1)
Gauche doesn't have "1-".
(define (1- n) (- n 1))
(define (range n) (unfold-right negative? values 1- n))
(range 9)
===>
(0 1 2 3 4 5 6 7 8 9)