I'm trying to learn newLISP by solving some of the Project Euler problems. I'm currently working on Problem 4 using streams, using some functions from viewtopic.php?f=5&t=2162. (It's the task I was given by my mentor.)
I'm trying to use the 2nd syntax of letex, but I must have something wrong because I get "ERR: list or string expected in function empty? s2".
Code: Select all
(define (product-stream-Reuler s1 s2 , s3) (setf s3 (if (empty-stream? s1) the-empty-stream (empty-stream? s2) the-empty-stream (letex ( a1 (head s1) a2 (head s2) c1 (tail s1) c2 (tail s2) ) (println "a1=" 'a1 ", a2=" 'a2 "\ns1=" 's1 ", s2=" 's2 "\nc1=" 'c1) (accumulate cons '() (cons-stream ; first palindrome product of (* n s2) (head (filter-stream palindrome? (product-stream (num-stream 'a1) 's2) ) ) ; re-run with next n (product-stream-Reuler 'c1 's2) ) ) ) )) s3 ) ; a and b are streams of the integers from 999 to 100 (product-stream-Reuler a b)
What bit of letex am I misunderstanding?
Thank you for your help.