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.schemeDate : 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 andbasically fall down frothing at the mouth if they see [heterodoxy]. --- Kenny TiltonThe good news is, it's not Lisp that sucks, but Common Lisp. --- Paul Graham
| Date | Sujet | # | | Auteur |
| 29 Aug 25 | Re: mapcar using a function with one argument fixed | 1 | | B. Pym |
Haut de la page
Les messages affichés proviennent d'usenet.
NewsPortal