Skip to content

Commit 73ec2b9

Browse files
committed
Add documentation for predicate signatures.
1 parent 820eff5 commit 73ec2b9

File tree

6 files changed

+17
-9
lines changed

6 files changed

+17
-9
lines changed

htdp-doc/scribblings/htdp-langs/advanced.scrbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ level as they did in the @secref["intermediate-lam"] level.
338338

339339
@section[#:tag "advanced-signatures"]{Signatures}
340340

341-
@(signature-forms ("advanced") advanced : signature enum mixed -> ListOf)
341+
@(signature-forms ("advanced") advanced : signature enum mixed -> ListOf predicate)
342342

343343
@pre-defined-fun
344344

htdp-doc/scribblings/htdp-langs/beginner-abbr.scrbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ Abbreviations} level as they did in the @secref["beginner"] level.
100100

101101
@section[#:tag "beginner-abbr-signatures"]{Signatures}
102102

103-
@(signature-forms ("beginner-abbr") define-struct : signature enum mixed -> ListOf)
103+
@(signature-forms ("beginner-abbr") define-struct : signature enum mixed -> ListOf predicate)
104104

105105
@; ----------------------------------------
106106

htdp-doc/scribblings/htdp-langs/beginner.scrbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ A quoted @racket[name] is a symbol. A symbol is a value, just like
9696

9797
@section[#:tag "beginner-signatures"]{Signatures}
9898

99-
@(signature-forms ("beginner") define-struct : signature enum mixed -> ListOf)
99+
@(signature-forms ("beginner") define-struct : signature enum mixed -> ListOf predicate)
100100

101101
@; --------------------------------------------------
102102

htdp-doc/scribblings/htdp-langs/intermediate-lambda.scrbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ level as they did in the @secref["intermediate"] level.
141141

142142
@section[#:tag "intermediate-lambda-signatures"]{Signatures}
143143

144-
@(signature-forms ("intermediate-lambda") define-struct : signature enum mixed -> ListOf)
144+
@(signature-forms ("intermediate-lambda") define-struct : signature enum mixed -> ListOf predicate)
145145

146146
@pre-defined-fun
147147

htdp-doc/scribblings/htdp-langs/intermediate.scrbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ did in the @secref["beginner-abbr"] level.
114114

115115
@section[#:tag "intermediate-signatures"]{Signatures}
116116

117-
@(signature-forms ("intermediate") define-struct : signature enum mixed -> ListOf)
117+
@(signature-forms ("intermediate") define-struct : signature enum mixed -> ListOf predicate)
118118

119119
@section[#:tag "intermediate-pre-defined" ]{Pre-defined Functions}
120120

htdp-doc/scribblings/htdp-langs/prim-ops.rkt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -735,24 +735,26 @@ see note on @racket[check-expect] for details. }
735735

736736
(define-syntax-rule (signature-forms
737737
(section-prefix)
738-
define-struct : signature enum mixed -> ListOf)
738+
define-struct : signature enum mixed -> ListOf predicate)
739739
(gen-signature-forms section-prefix
740740
#'define-struct @racket[define-struct]
741741
#': @racket[:]
742742
#'signature @racket[signature]
743743
#'enum @racket[enum]
744744
#'mixed @racket[mixed]
745745
#'-> @racket[->]
746-
#'ListOf @racket[ListOf]))
746+
#'ListOf @racket[ListOf]
747+
#'predicate @racket[predicate]))
747748

748749
(define (gen-signature-forms section-prefix
749750
define-struct-id define-struct-elem
750751
:-id :-elem
751752
signature-id signature-elem
752753
enum-id enum-elem
753-
mixed-id mixed-enum
754+
mixed-id mixed-elem
754755
->-id ->-elem
755-
ListOf-id ListOf-elem)
756+
ListOf-id ListOf-elem
757+
predicate-id predicate-elem)
756758
(list
757759
@; ----------------------------------------------------------------------
758760

@@ -862,6 +864,12 @@ This signature describes a list where the elements are described by
862864
@racket[signature-form].
863865
}
864866

867+
@defform[#:id [predicate predicate-id] (predicate expression)]{
868+
This signature describes values through a predicate:
869+
@racket[expression] must evaluate to a function of one argument that
870+
returns a boolean. The signature matches all values for which
871+
the predicate returns @racket[#true].
872+
}
865873

866874
@subsection[#:tag (string-append section-prefix "-struct-signatures")]{Struct Signatures}
867875

0 commit comments

Comments
 (0)