www

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

commit 9797ba92c290b109e3102de132716aaf09742c38
parent 3cc298679c8f7895be9f34da9b5686f8d81a3617
Author: AlexKnauth <alexander@knauth.org>
Date:   Tue, 24 May 2016 18:14:03 -0400

document  kw-lists-lambda and kw-lists-case-lambda

Diffstat:
Mkw-utils/docs/kw-hash.scrbl | 4++--
Akw-utils/docs/kw-lists-lambda.scrbl | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mkw-utils/docs/kw-utils.scrbl | 2+-
3 files changed, 57 insertions(+), 3 deletions(-)

diff --git a/kw-utils/docs/kw-hash.scrbl b/kw-utils/docs/kw-hash.scrbl @@ -3,7 +3,7 @@ (for-label kw-utils/kw-hash kw-utils/kw-hash-lambda kw-utils/kw-hash/contract - kw-utils/keyword-lambda + kw-utils/kw-lists-lambda racket/base racket/contract/base racket/math @@ -18,7 +18,7 @@ @defform[(kw-hash-lambda formals #:kws kw-hash-id body-expr ...+)]{ roughly equivalent to @(racketblock - (keyword-lambda (kws kw-args . formals) + (kw-lists-lambda kws kw-args formals (let ([kw-hash-id (keyword-apply make-kw-hash kws kw-args '())]) body ...))) diff --git a/kw-utils/docs/kw-lists-lambda.scrbl b/kw-utils/docs/kw-lists-lambda.scrbl @@ -0,0 +1,54 @@ +#lang scribble/manual + +@(require racket/base + scribble/eval + (for-label kw-utils/kw-lists-lambda + kw-utils/keyword-lambda + racket/base)) + +@title[#:tag "kw-lists-lambda.scrbl"]{kw-lists-lambda} + +@defmodule[kw-utils/kw-lists-lambda] + +@defform[(kw-lists-lambda kws kw-args args body ...) + #:grammar ([args (arg ...) + (arg ... . rest-id) + rest-id] + [arg arg-id + [arg-id default-expr]])]{ +roughly equivalent to +@(racketblock + (make-keyword-procedure + (lambda (kws kw-args . args) body ...)) + ) + +@examples[ + (require kw-utils/kw-lists-lambda) + (define proc + (kw-lists-lambda kws kw-args rest-args + (list kws kw-args rest-args))) + (proc #:a 'a #:b 'b 0 1 2) +]} + +@defform[(kw-lists-case-lambda kws kw-args [args body ...] ...) + #:grammar ([args (arg-id ...) + (arg-id ... . rest-id) + rest-id])]{ +roughly equivalent to +@(racketblock + (make-keyword-procedure + (case-lambda [(kws kw-args . args) body ...] ...)) + ) + +@examples[ + (require kw-utils/kw-lists-lambda) + (define proc + (kw-lists-case-lambda kws kw-args + [(a) + (list kws kw-args a)] + [(a b) + (list kws kw-args a b)])) + (proc #:a 'a #:b 'b 0) + (proc #:a 'a #:b 'b 0 1) +]} + diff --git a/kw-utils/docs/kw-utils.scrbl b/kw-utils/docs/kw-utils.scrbl @@ -6,7 +6,7 @@ source code: @url["https://github.com/AlexKnauth/kw-utils"] @local-table-of-contents[] -@include-section[(lib "kw-utils/docs/keyword-lambda.scrbl")] +@include-section[(lib "kw-utils/docs/kw-lists-lambda.scrbl")] @include-section[(lib "kw-utils/docs/keyword-apply-sort.scrbl")] @include-section[(lib "kw-utils/docs/arity+keywords.scrbl")] @include-section[(lib "kw-utils/docs/kw-map.scrbl")]