Added examples to `redex-check' documentation.

svn: r13081
This commit is contained in:
Casey Klein 2009-01-12 22:50:09 +00:00
parent 2b0daee31c
commit d7d93250f3

View File

@ -1011,20 +1011,20 @@ an association list mapping names to application counts.}
@examples[ @examples[
#:eval redex-eval #:eval redex-eval
(define-language addition (define-language empty-lang)
(e (+ number ...)))
(define reduce (define equals
(reduction-relation (reduction-relation
addition empty-lang
(--> (+) 0 "zero") (--> (+) 0 "zero")
(--> (+ number) number) (--> (+ number) number)
(--> (+ number_1 number_2 number ...) (--> (+ number_1 number_2 number ...)
(+ ,(+ (term number_1) (term number_2)) (+ ,(+ (term number_1) (term number_2))
number ...) number ...)
"add"))) "add")))
(let ([coverage (make-coverage reduce)]) (let ([coverage (make-coverage equals)])
(parameterize ([relation-coverage coverage]) (parameterize ([relation-coverage coverage])
(apply-reduction-relation* reduce (term (+ 1 2 3))) (apply-reduction-relation* equals (term (+ 1 2 3)))
(covered-cases coverage)))] (covered-cases coverage)))]
@defform*[[(generate-term language #, @|ttpattern| size-exp) @defform*[[(generate-term language #, @|ttpattern| size-exp)
@ -1056,6 +1056,31 @@ these free @pattech[term]-variables by generating random terms matching
@scheme[pattern] and extracting the sub-terms bound by the @scheme[pattern] and extracting the sub-terms bound by the
@pattech[names] and non-terminals in @scheme[pattern]. @pattech[names] and non-terminals in @scheme[pattern].
@examples[
#:eval redex-eval
(define-language empty-lang)
(random-seed 0)
(redex-check
empty-lang
((number_1 ...)
(number_2 ...))
(equal? (reverse (append (term (number_1 ...))
(term (number_2 ...))))
(append (reverse (term (number_1 ...)))
(reverse (term (number_2 ...))))))
(redex-check
empty-lang
((number_1 ...)
(number_2 ...))
(equal? (reverse (append (term (number_1 ...))
(term (number_2 ...))))
(append (reverse (term (number_2 ...)))
(reverse (term (number_1 ...)))))
#:attempts 200)]
@scheme[redex-check] generates at most @scheme[attempts-expr] (default @scheme[100]) @scheme[redex-check] generates at most @scheme[attempts-expr] (default @scheme[100])
random terms in its search. The size and complexity of terms it generates random terms in its search. The size and complexity of terms it generates
gradually increases with each failed attempt. gradually increases with each failed attempt.