commit 1dc75cffe9bba7b86d7fca001117fad435795c50
parent 742e7820fa68868455749b929f2ca9e22fbaf3ea
Author: Matthew Flatt <mflatt@racket-lang.org>
Date: Thu, 6 Sep 2007 13:48:44 +0000
improve defproc* to support multiple bindings documented together (instead of just multiple forms of the same binding)
svn: r7285
original commit: 5154426cf61509fa76f6c9a88184dab5f860cf36
Diffstat:
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/collects/scribble/manual.ss b/collects/scribble/manual.ss
@@ -858,7 +858,14 @@
prototypes
arg-contractss
result-contracts
- (cons #t (map (lambda (x) #f) (cdr prototypes))))))
+ (let loop ([ps prototypes][accum null])
+ (cond
+ [(null? ps) null]
+ [(ormap (lambda (a) (eq? (caar ps) a)) accum)
+ (cons #f (loop (cdr ps) accum))]
+ [else
+ (cons #t (loop (cdr ps)
+ (cons (caar ps) accum)))])))))
(content-thunk))))))
(define (make-target-element* inner-make-target-element stx-id content wrappers)
diff --git a/collects/scribblings/scribble/manual.scrbl b/collects/scribblings/scribble/manual.scrbl
@@ -225,7 +225,13 @@ source layout.}
pre-flow ...)]{
Like @scheme[defproc], but for multiple cases with the same
-@scheme[id]. }
+@scheme[id].
+
+When an @scheme[id] has multiple calling cases, they must be defined
+with a single @scheme[defproc*], so that a single definition point
+exists for the @scheme[id]. However, multiple distinct @scheme[id]s
+can also be defined by a single @scheme[defproc*], for the case that
+it's best to document a related group of procedures at once.}
@defform/subs[(defform maybe-literals (id . datum) pre-flow ...)