Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Lawrence D'Oliveiro Newsgroups: comp.lang.lisp Subject: Re: A Mandelbrot set generator in HG LISP Date: Sun, 13 Apr 2025 00:13:26 -0000 (UTC) Organization: A noiseless patient Spider Lines: 60 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Sun, 13 Apr 2025 02:13:27 +0200 (CEST) Injection-Info: dont-email.me; posting-host="5a394981b73e49d36ebf2736a3771422"; logging-data="1707857"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/sXeAWVtX7FyZuN5DML463" User-Agent: Pan/0.162 (Pokrosvk) Cancel-Lock: sha1:yipXFtlzOJ8lXzm5s6HuFlwPEF0= Bytes: 2590 On 12 Apr 2025 14:01:00 GMT, Stefan Ram wrote: > From my recent postings in other newsgroups: A generator for > a Mandelbrot set image written in a LISP similar to the HG LISP I used > in 1981 on my Pet 2001 as I remember it. Looks like a Lisp-1 dialect, rather than Lisp-2. But not a Scheme derivative? > [extract kept as example, rest snipped] > > (SETQ MANDELBROT > (LAMBDA (X Y) > (PROGN > (SETQ C 126) > (SETQ Z (LIST X Y)) > (SETQ A Z) > (SETQ ITERATE > (LAMBDA () > (COND ((OR (< C 32) (> (CABS Z) 2)) > (- 126 C)) > (T > (PROGN > (SETQ TEMP-CMUL (CMUL Z Z)) > (SETQ TEMP-CADD (CADD A TEMP-CMUL)) > (SETQ Z TEMP-CADD) > (SETQ C (- C 1)) > (ITERATE)))))) > (ITERATE)))) I was never a fan of “parenthesis pileup” layout. Try this for comparison: (SETQ MANDELBROT (LAMBDA (X Y) (PROGN (SETQ C 126) (SETQ Z (LIST X Y)) (SETQ A Z) (SETQ ITERATE (LAMBDA () (COND ((OR (< C 32) (> (CABS Z) 2)) (- 126 C) ) (T (PROGN (SETQ TEMP-CMUL (CMUL Z Z)) (SETQ TEMP-CADD (CADD A TEMP-CMUL)) (SETQ Z TEMP-CADD) (SETQ C (- C 1)) (ITERATE) ) ; PROGN ) ) ; COND ) ; LAMBDA ) ; ITERATE (ITERATE) ) ; PROGN ) ; LAMBDA ) ; MANDELBROT