Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "B. Pym" Newsgroups: comp.lang.forth Subject: Re: the FMITE processor Date: Wed, 10 Jul 2024 02:37:48 -0000 (UTC) Organization: A noiseless patient Spider Lines: 69 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Injection-Date: Wed, 10 Jul 2024 04:37:48 +0200 (CEST) Injection-Info: dont-email.me; posting-host="ae991877012a29456ea5a7795eee3846"; logging-data="1840207"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX186Lf7LkXOCIVkRlCPY9l/i" User-Agent: XanaNews/1.18.1.6 Cancel-Lock: sha1:Ycmfw9GMrD3mOW10C2e5q93mOAc= Bytes: 2377 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) In Forth?