Re: mapcar using a function with one argument fixed

Liste des GroupesRevenir à cl scheme 
Sujet : Re: mapcar using a function with one argument fixed
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp comp.lang.scheme
Date : 29. Aug 2025, 01:57:06
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <108qtsv$1n515$1@dont-email.me>
References : 1
User-Agent : XanaNews/1.18.1.6
B. Pym wrote:

Rainer Joswig wrote:
 
(LOOP FOR x IN list-for-xs AND y IN list-for-ys
      COLLECT (my-function a y x b))
 
(define x-list '(x0 x1 x2 x3))
(define y-list '(y0 y1 y2 y3))
 
(map (cut  list '! <> '! <>) x-list y-list)
 
  ===>
((! x0 ! y0) (! x1 ! y1) (! x2 ! y2) (! x3 ! y3))


(define x-list '(x0 x1 x2 x3))
(define y-list '(y0 y1 y2 y3))

(% map (list '-- A: '-- B:) x-list y-list)

  ===>
((-- x0 -- y0) (-- x1 -- y1) (-- x2 -- y2) (-- x3 -- y3))

Given:

;; Anaphoric macro to abbreviate lambdas for higher-order functions.
;; Uses "_" for 1 argument;
;; uses "A:" and "B:" and so on for 2 or more arguments.
;; This version works under both Gauche Scheme
;; and Racket.  Racket needs:
;;   (require compatibility/defmacro)
;;
(define-macro %
  (case-lambda
    ((func expr List) `(,func (lambda(_) ,expr) ,List))
    ((func expr  . more)
      (let* ((n 64)
             (nums (map (lambda _ (set! n (+ 1 n)) n) more))
             (vnames
                (map (lambda(n)
                       (string->symbol (string (integer->char n) #\:)))
                     nums)))
        `(,func (lambda ,vnames ,expr) ,@more)))))

--
[T]he problem is that lispniks are as cultish as any other devout group and
basically fall down frothing at the mouth if they see [heterodoxy].
  --- Kenny Tilton
The good news is, it's not Lisp that sucks, but Common Lisp. --- Paul Graham

Date Sujet#  Auteur
29 Aug 25 o Re: mapcar using a function with one argument fixed1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal