Deutsch   English   Français   Italiano  
<vals69$36dse$1@dont-email.me>

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

Path: ...!feeds.phibee-telecom.net!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: "B. Pym" <Nobody447095@here-nor-there.org>
Newsgroups: comp.lang.lisp,comp.lang.scheme
Subject: Re: Learning Lisp in Linux?
Date: Wed, 28 Aug 2024 00:49:14 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 37
Message-ID: <vals69$36dse$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Injection-Date: Wed, 28 Aug 2024 02:49:14 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="e20b841b07463d489f1974339e45f851";
	logging-data="3356558"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/Qanw5bF3MS+3USo3OiBOn"
User-Agent: XanaNews/1.18.1.6
Cancel-Lock: sha1:e91LJSMPg9DJlIcrJ01MNxywpZs=
Bytes: 1950

Pascal Costanza wrote:

> > I'm not advocating tail-recursion instead of specialized iteration
> > mechanisms closer to the problem domain.  I'm just saying tail-
> > recursion code isn't anywhere as low-level as you're making it up to
> > be.
> 
> It actually is, and your posting below shows it very nicely.
> 
> >> Here is a nice example using loop:
> >>
> >> (loop for (key value) on property-list by #'cddr
> >>        unless (member key excluded-keys)
> >>        append (list key value)) ; [1]
> 
> As a function:
> 
> (defun filter (excluded-keys property-list)
>    (loop for (key value) on property-list by #'cddr
>          unless (member key excluded-keys)
>          nconc (list key value)))
> 
>  > (filter '(c d) '(a 1 b 2 b 3 c 4 d 5 c 6))
> (A 1 B 2 B 3)
> 
> The result is a correct property list

Gauche Scheme
 
(define (remove-props bad-keys prop-list)
  (concatenate
    (remove (^p (member (car p) bad-keys))
      (slices prop-list 2))))

(remove-props '(c d) '(a 1 b 2 b 3 c 4 d 5 c 6))
  ===>
(a 1 b 2 b 3)