www

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

commit b12c5f2b199c256f4e6591326cad8bf2ef974e8e
parent 9797ba92c290b109e3102de132716aaf09742c38
Author: AlexKnauth <alexander@knauth.org>
Date:   Tue, 24 May 2016 18:20:31 -0400

fix and document kw-hash-case-lambda

Diffstat:
Mkw-utils/docs/kw-hash.scrbl | 21+++++++++++++++++++++
Mkw-utils/kw-hash-lambda.rkt | 7+++----
2 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/kw-utils/docs/kw-hash.scrbl b/kw-utils/docs/kw-hash.scrbl @@ -30,6 +30,27 @@ roughly equivalent to (proc 0 1 2 #:a 'a #:b 'b) ]} +@defform[(kw-hash-case-lambda #:kws kw-hash-id [formals body-expr ...+] ...)]{ +roughly equivalent to +@(racketblock + (kw-lists-case-lambda kws kw-args + [formals + (let ([kw-hash-id (keyword-apply make-kw-hash kws kw-args '())]) + body ...)] + ...)) + +@examples[ + (require kw-utils/kw-hash-lambda) + (define proc + (kw-hash-case-lambda #:kws kw-hash + [(a) + (list a kw-hash)] + [(a b) + (list a b kw-hash)])) + (proc 0 #:a 'a #:b 'b) + (proc 0 1 #:a 'a #:b 'b) +]} + @section{kw-hash} @defmodule[kw-utils/kw-hash] diff --git a/kw-utils/kw-hash-lambda.rkt b/kw-utils/kw-hash-lambda.rkt @@ -1,8 +1,6 @@ #lang racket/base (provide kw-hash-lambda kw-hash-case-lambda) -(module+ unstable - (provide )) (require "kw-lists-lambda.rkt" "kw-hash.rkt" @@ -23,11 +21,12 @@ (define-syntax kw-hash-case-lambda (lambda (stx) (syntax-parse stx - [(kw-hash-case-lambda #:kws kw-hash:id [rest-args body:expr ...+]) + [(kw-hash-case-lambda #:kws kw-hash:id [rest-args body:expr ...+] ...) #'(kw-lists-case-lambda kws kw-args [rest-args (let ([kw-hash (keyword-app-make-kw-hash kws kw-args)]) - body ...)])]))) + body ...)] + ...)]))) (module+ test (test-case "kw-hash-lambda"