re: Elegant solution asked

Liste des GroupesRevenir à cl lisp 
Sujet : re: Elegant solution asked
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp comp.lang.scheme
Date : 07. Sep 2024, 10:19:39
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vbh2an$19l65$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Very often I need a function to map a 2 argument function over a list and
a fixed argument. For example, if we call such function map1:
(map1 #'list 'z '(a b c)) should return: '((z a) (z b) (z c))
>
Can anyone suggest an elegant solution for this. The best I could come up
with was:
>
(defun map1 (function fixed-argument list)
    (mapcar (lambda (element) (funcall fn fixed-argument element)) list))
>
This works fine, but I have the gut feeling that there must be a
better/simpler way. Any ideas?
Thanks in advance.
Please reply to: lsarasua@epo.e-mail.com
 
I prefer the following (I guess because it avoids the funcall), although
I don't claim it is is significantly better.
 
(defun map1 (function fixed_argument list) (mapcar function
             (mapcar #'(lambda (x) fixed-argument) list) list))

Scheme

(map (curry list '--) '(a b c))
  ===>
((-- a) (-- b) (-- c))

(map (curryr list '--) '(a b c))
  ===>
((a --) (b --) (c --))

Date Sujet#  Auteur
7 Sep 24 o Re: Elegant solution asked1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal