Maybe I'm missing the point of the question, but I'm not sure I understand why that internal `define` is not equivalent to a `let`. It looks like the code is binding its value and then returning that value. Unless there's something going on here involving lazy evaluation or something? Without knowing more about how `cons-stream`, `scale-stream` and `add-streams` work, it's hard to know.
Do you have a pointer into SICP (chapter, exercise number, etc.)?
On 13 Dec 2021, at 14:04, Marco Antoniotti wrote:
Hi
apologies for the stupid question. I was reviewing some teaching material and looked at the following Scheme (form SICP) code about "streams".
(define (integral integrand initial-value dt) (define int (cons-stream initial-value (add-streams (scale-stream integrand dt) int))) int)
The question is how you'd rendered it in Common Lisp or how you would provide some macrology to mimic the inner define. I know this has been asked before... I am sure somebody knows the answer.
All the best
-- Marco Antoniotti, Professor tel. +39 - 02 64 48 79 01 DISCo, Università Milano Bicocca U14 2043 http://dcb.disco.unimib.it Viale Sarca 336 I-20126 Milan (MI) ITALY