www

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

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