Sujet : Re: A Mandelbrot set generator in HG LISP
De : ldo (at) *nospam* nz.invalid (Lawrence D'Oliveiro)
Groupes : comp.lang.lispDate : 13. Apr 2025, 01:13:26
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vtevj6$1k3qh$3@dont-email.me>
References : 1
User-Agent : Pan/0.162 (Pokrosvk)
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