Deutsch   English   Français   Italiano  
<vtevj6$1k3qh$3@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Lawrence D'Oliveiro <ldo@nz.invalid>
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: <vtevj6$1k3qh$3@dont-email.me>
References: <Mandelbrot-20250412145830@ram.dialup.fu-berlin.de>
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