kw-map.scrbl (893B)
1 #lang scribble/manual 2 3 @(require scribble/eval 4 (for-label kw-utils/kw-map 5 (rename-in racket/base [map rkt:map]) 6 racket/math 7 )) 8 9 @title[#:tag "kw-map.scrbl"]{map with keyword arguments} 10 11 @defmodule[kw-utils/kw-map] 12 13 @defproc[(map [proc procedure?] [lst list?] ... [#:<kw> lst2 list?] ...) list?]{ 14 like @racket[rkt:map], but accepts keyword arguments as well as positional arguments. 15 16 @examples[ 17 (require kw-utils/kw-map racket/math) 18 (map (λ (x) (+ x 1)) '(1 2 3 4)) 19 (map (λ (#:x x) (+ x 1)) #:x '(1 2 3 4)) 20 (map (λ (x y) (+ x y)) '(1 2 3 4) '(10 100 1000 10000)) 21 (map (λ (x #:y y) (+ x y)) '(1 2 3 4) #:y '(10 100 1000 10000)) 22 (define (KE #:m m #:v v) 23 (* 1/2 m (sqr v))) 24 (map KE #:m '(2 2 2 2) #:v '(0 1 2 3)) 25 (map KE #:m '(0 1 2 3) #:v '(0 1 2 3)) 26 (map KE #:m '(1 2 1/2 2/9) #:v '(0 1 2 3)) 27 ]}