kw-lists-lambda.scrbl (1383B)
1 #lang scribble/manual 2 3 @(require racket/base 4 scribble/eval 5 (for-label kw-utils/kw-lists-lambda 6 kw-utils/keyword-lambda 7 racket/base)) 8 9 @title[#:tag "kw-lists-lambda.scrbl"]{kw-lists-lambda} 10 11 @defmodule[kw-utils/kw-lists-lambda] 12 13 @defform[(kw-lists-lambda kws kw-args args body ...) 14 #:grammar ([args (arg ...) 15 (arg ... . rest-id) 16 rest-id] 17 [arg arg-id 18 [arg-id default-expr]])]{ 19 roughly equivalent to 20 @(racketblock 21 (make-keyword-procedure 22 (lambda (kws kw-args . args) body ...)) 23 ) 24 25 @examples[ 26 (require kw-utils/kw-lists-lambda) 27 (define proc 28 (kw-lists-lambda kws kw-args rest-args 29 (list kws kw-args rest-args))) 30 (proc #:a 'a #:b 'b 0 1 2) 31 ]} 32 33 @defform[(kw-lists-case-lambda kws kw-args [args body ...] ...) 34 #:grammar ([args (arg-id ...) 35 (arg-id ... . rest-id) 36 rest-id])]{ 37 roughly equivalent to 38 @(racketblock 39 (make-keyword-procedure 40 (case-lambda [(kws kw-args . args) body ...] ...)) 41 ) 42 43 @examples[ 44 (require kw-utils/kw-lists-lambda) 45 (define proc 46 (kw-lists-case-lambda kws kw-args 47 [(a) 48 (list kws kw-args a)] 49 [(a b) 50 (list kws kw-args a b)])) 51 (proc #:a 'a #:b 'b 0) 52 (proc #:a 'a #:b 'b 0 1) 53 ]} 54