• Re: the FMITE processor

    From B. Pym@21:1/5 to hughag...@gmail.com on Tue Jul 9 17:27:22 2024
    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)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)