Rocksolid Light

News from da outaworlds

mail  files  register  groups  login

Message-ID:  

Q: What is green and lives in the ocean? A: Moby Pickle.


comp / comp.lang.lisp / Re: the FMITE processor

SubjectAuthor
o Re: the FMITE processorB. Pym

1
Subject: Re: the FMITE processor
From: B. Pym
Newsgroups: comp.lang.lisp
Organization: A noiseless patient Spider
Date: Tue, 9 Jul 2024 17:27 UTC
Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: NoSpam_762@not_there.org (B. Pym)
Newsgroups: comp.lang.lisp
Subject: Re: the FMITE processor
Date: Tue, 9 Jul 2024 17:27:22 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 68
Message-ID: <v6jrtn$1fdce$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Injection-Date: Tue, 09 Jul 2024 19:27:22 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="d6c6a8fe9d18727fccd44e33ccf67a81";
logging-data="1553806"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18uU7Bz+rlXbLy++aIhTQdx"
User-Agent: XanaNews/1.18.1.6
Cancel-Lock: sha1:Z6pLUic+MEJIzNhD0E+oPrhkxcM=
View all headers

hughag...@gmail.com wrote:

> There is no good reason to execute a lambda function after the
> parent function has gone out of scope.

The original poster was so ignorant that he knew nothing
whatsoever about Usenet; in fact, he may not have known that
he was posting to Usenet. Consequently, each paragraph in
his post was one gigantic line. I broke his line for him.

In this and other posts he has provided evidence that he
is ignorant about higher-level languages and higher-level
programming concepts. In fact, he has shown that he finds
high-level concepts difficult or impossible to grasp.

(define (make-fib-gen)
(let ((a 1) (b 1))
(lambda ()
(begin0 a
(set!-values (a b) (values b (+ a b)))))))

(define fib0 (make-fib-gen))
(define fib1 (make-fib-gen))

(do ((i 5 (- i 1))) ((zero? i))
(display (fib0)) (display " "))

===>
1 1 2 3 5

(do ((i 6 (- i 1)))
((zero? i))
(display (list (fib0) (fib1)))
(newline))

===>
(8 1)
(13 1)
(21 2)
(34 3)
(55 5)
(89 8)

(define (make-accumulator)
(let ((accum '()))
(lambda xs
(if (null? xs)
(reverse accum)
(set! accum (cons (car xs) accum))))))

(define odds (make-accumulator))
(define evens (make-accumulator))
(define all (make-accumulator))

(do ((i 9 (- i 1)))
((zero? i) (values (all) (odds) (evens)))
(let ((n (fib1)))
((if (odd? n) odds evens) n)
(all n)))

===>
(13 21 34 55 89 144 233 377 610)
(13 21 55 89 233 377)
(34 144 610)

1

rocksolid light 0.9.8
clearnet tor