Deutsch   English   Français   Italiano  
<30b4599472c7cfb8b8e5b278bba46e0e@www.novabbs.com>

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

Path: ...!weretis.net!feeder9.news.weretis.net!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: HenHanna <HenHanna@dev.null>
Newsgroups: comp.lang.lisp,comp.lang.scheme
Subject: Re: What's the error in this =?UTF-8?B?bWFjcm8/?=
Date: Tue, 24 Sep 2024 00:49:20 +0000
Organization: novaBBS
Message-ID: <30b4599472c7cfb8b8e5b278bba46e0e@www.novabbs.com>
References: <vcmhni$1k4sf$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: i2pn2.org;
	logging-data="3219383"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="25PjXUQKTQXKZnoxTqVufZcfCkmLjnu8AjjfHtuMysE";
User-Agent: Rocksolid Light
X-Spam-Checker-Version: SpamAssassin 4.0.0
X-Face: P#KeQ)CUdd!==@fw~Ms1=,Hb`IWtb6:Mw)x3B=H1BfNC\lz?Nb&)M9}$>?'X7l;CuB}utlJ=PHsRBSG6X>dYZ$[>P]$~+`>@V6$t}hTLoQ7XC~W\>:`B3ALU]SH;d(\MEc}znW8m}-ma&yPFkJ2@KSQrz=!Y;><;6a>z6N+mt`ClCt.PAE<o+B$qjwejZSZ,w]^;vrdl24z5(pm={l,F10qRDF
X-Rslight-Site: $2y$10$2QnbcAITM481/20ddpOx2.LdDx7s/mMWQfBsK.vXX3s1V/rVplK0G
X-Rslight-Posting-User: 5a1f1f09909a70d7ae18ae9af00e018f83ece577
Bytes: 2379
Lines: 39

On Sat, 21 Sep 2024 13:29:23 +0000, B. Pym wrote:

> KK wrote:
>
>>> (defmacro sum (expression index initial condition)
>>> ;; Sum $expression$ for $index$ = $initial$ and successive integers,
>>> ;; as long as $condition$ holds.
>>>   (let ((temp (gensym)))
>>>     `(do ((,temp 0 (+ ,temp ,expression))
>>>           (,index ,initial (1+ ,index)))
>>>          ((not ,condition) ,temp))))


        This looks good to me...  Was this the corrected version?

>>
>> The main error with this macro is that it does something you could do
>> with the standard LOOP. I.e. instead of debugging this macro, you could
>> be working on the program where this macro is intended to be used:
>>
>
>>  (loop for x from 1 while (< x 6) summing x)    --> 15
>
> Gauche Scheme
>
> (use srfi-42) ;; sum-ec
> (sum-ec (:range x 1 6) x)        ===>      15


In Scheme and  Gauche Scheme,   do ppl use  Gensym?


(define-macro (Sum expression index initial condition)
              `(do ((%Sum 0 (+ %Sum ,expression))
                    (,index ,initial (+ 1 ,index)))
                 ((not ,condition) %Sum)))

(print (macroexpand '(Sum  x  x 1 (< x 6))))

(print (Sum  x  x 1 (< x 6)))