www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 ]}