9497 lines
278 KiB
Scheme
9497 lines
278 KiB
Scheme
(load-relative "../loadtest.ss")
|
|
(SECTION 'PLT-MATCH)
|
|
|
|
|
|
(require (lib "plt-match.ss"))
|
|
;(require "../plt-match.ss")
|
|
(require (lib "list.ss"))
|
|
(require (lib "pregexp.ss"))
|
|
|
|
(define-syntax test-mac
|
|
(syntax-rules ()
|
|
((id to-test eval-to)
|
|
(with-handlers ([(lambda exn #t)
|
|
(lambda (exn) (failed-test (exn-message exn)
|
|
(quote to-test)
|
|
'() eval-to))])
|
|
(let ((res to-test))
|
|
(if (equal? res eval-to)
|
|
#t
|
|
(failed-test '() (quote to-test) res eval-to)))))))
|
|
|
|
(define (failed-test exn-msg test-code result should-have-been)
|
|
`((Test-Failure)
|
|
(Code ,test-code)
|
|
(Expected-Result ,should-have-been)
|
|
,(if (null? exn-msg)
|
|
`(Actual-Result ,result)
|
|
`(Exception ,exn-msg))))
|
|
|
|
; (define-syntax mytest
|
|
; (lambda (stx)
|
|
; (syntax-case stx ()
|
|
; ((_ t result)
|
|
; #`(test result #,(syntax/loc stx (lambda () t)))))))
|
|
|
|
(define (set-equal? set-1 set-2)
|
|
(null? (set-diff set-1 set-2)))
|
|
(define (set-diff set-1 set-2)
|
|
(filter (lambda (a) (if (member a set-2)
|
|
#f
|
|
a)) set-1) )
|
|
|
|
|
|
(define-syntax mytest
|
|
(lambda (stx)
|
|
(syntax-case stx ()
|
|
((_ t result)
|
|
#`(test #t #,(syntax/loc stx (lambda () (test-mac t result))))))))
|
|
|
|
(define-syntax test-mac-no-order
|
|
(syntax-rules ()
|
|
((id to-test eval-to)
|
|
(with-handlers ([(lambda exn #t)
|
|
(lambda (exn) (failed-test (exn-message exn)
|
|
(quote to-test)
|
|
'() eval-to))])
|
|
(let ((res to-test))
|
|
(if (set-equal? res eval-to)
|
|
#t
|
|
(failed-test '() (quote to-test) res eval-to)))))))
|
|
|
|
(define-syntax mytest-no-order
|
|
(lambda (stx)
|
|
(syntax-case stx ()
|
|
((_ t result)
|
|
#`(test #t #,(syntax/loc stx (lambda () (test-mac-no-order t result))))))))
|
|
|
|
|
|
;;
|
|
|
|
|
|
;(mytest (match "hello"
|
|
; (#rx"he..o" #t)
|
|
; (else #f))
|
|
; #t)
|
|
|
|
;(mytest (match "hello"
|
|
; (#rx"heffo" #t)
|
|
; (else #f))
|
|
; #f)
|
|
|
|
(mytest (match "hello"
|
|
((pregexp (pregexp "hello")) #t)
|
|
(else #f))
|
|
#t)
|
|
|
|
(mytest (match 123
|
|
((pregexp "123") #t)
|
|
(else #f))
|
|
#f)
|
|
(mytest (match 123
|
|
((regexp "123") #t)
|
|
(else #f))
|
|
#f)
|
|
(mytest (match 123
|
|
((pregexp "123" (list a ...)) #t)
|
|
(else #f))
|
|
#f)
|
|
(mytest (match 123
|
|
((regexp "123" (list a ...)) #t)
|
|
(else #f))
|
|
#f)
|
|
|
|
(mytest (match "hello"
|
|
((regexp "hello") #t)
|
|
(else #f))
|
|
#t)
|
|
|
|
(mytest (match "frank"
|
|
((regexp "hello") #t)
|
|
((regexp "frank") 2)
|
|
(else #f))
|
|
2)
|
|
|
|
(mytest (match "frank"
|
|
((pregexp "hello") #t)
|
|
((pregexp "frank") 2)
|
|
(else #f))
|
|
2)
|
|
|
|
(mytest (match "frank"
|
|
((regexp "hello") #t)
|
|
(else #f))
|
|
#f)
|
|
|
|
(mytest (match "hello"
|
|
((regexp "(hel)lo" (list whol a rest ...)) a)
|
|
(else #f))
|
|
"hel")
|
|
|
|
(mytest (match "hello"
|
|
((pregexp "(hel)lo" (list whole a rest ...)) a)
|
|
(else #f))
|
|
"hel")
|
|
|
|
(mytest (match-let*
|
|
((a 1)
|
|
(c 2)
|
|
(d 3))
|
|
(list a c d))
|
|
'(1 2 3))
|
|
|
|
|
|
(mytest (match (list (cons "a" "b"))
|
|
[(list) ""]
|
|
[(list (list-rest name value))
|
|
(string-append name
|
|
"="
|
|
value)]
|
|
[(list-rest (list-rest name value) rest)
|
|
(string-append name
|
|
"="
|
|
value
|
|
"&"
|
|
(alist->form-urlencoded rest))])
|
|
"a=b")
|
|
|
|
(mytest (match '(case->)
|
|
[(list 'case-> types ...) 1]
|
|
[(list '->) 2]
|
|
[(list '-> types ...) 3]
|
|
[else 4])
|
|
1)
|
|
|
|
(mytest (match '(->)
|
|
[(list 'case-> types ...) 1]
|
|
[(list '->) 2]
|
|
[(list '-> types ...) 3]
|
|
[else 4])
|
|
2)
|
|
|
|
(mytest (match '(-> a b)
|
|
[(list 'case-> types ...) 1]
|
|
[(list '->) 2]
|
|
[(list '-> types ...) 3]
|
|
[else 4])
|
|
3)
|
|
|
|
(mytest (match 'x
|
|
[(list 'case-> types ...) 1]
|
|
[(list '->) 2]
|
|
[(list '-> types ...) 3]
|
|
[else 4])
|
|
4)
|
|
|
|
(mytest (match '((r a))
|
|
((list (and (list 'a) (list 'b)) ...) 1)
|
|
((list (list 'r 'a) ...) 2)
|
|
)
|
|
2)
|
|
|
|
(mytest (match '((r a))
|
|
((list (and (list 'a) (list 'b)) ... g ...) 1)
|
|
((list (list 'r 'a) ...) 2)
|
|
)
|
|
2)
|
|
|
|
(mytest (match '((r a))
|
|
((vector (and (list 'a) (list 'b)) ...) 1)
|
|
((list (list 'r 'a) ...) 2)
|
|
)
|
|
2)
|
|
|
|
(mytest (match '((r a))
|
|
((vector (and (list 'a) (list 'b)) ... g ...) 1)
|
|
((list (list 'r 'a) ...) 2)
|
|
)
|
|
2)
|
|
|
|
(mytest (match '((a 1) (b 1)) ((list (or (list 'a x) (list 'b x)) ..1) #t)) #t)
|
|
(mytest (match '((a 1) (b 1)) ((list (or (list 'a x) (list 'b x)) ..1 g ...) #t)) #t)
|
|
(mytest (match (vector '(a 1) '(b 1)) ((vector (or (list 'a x) (list 'b x)) ..1) #t)) #t)
|
|
(mytest (match (vector '(a 1) '(b 1)) ((vector (or (list 'a x) (list 'b x)) ..1 g ...) #t)) #t)
|
|
|
|
(mytest (match '(1 2 (3 4 5 6))
|
|
((list 1 2 (or (list 3 4 5 3)
|
|
(list 7 8 9 0))) 1)
|
|
((list 1 2 (list 3 4 5 a)) 2))
|
|
2)
|
|
|
|
|
|
|
|
;; list-no-oreder tests
|
|
|
|
|
|
(mytest-no-order (match '(1 2 3 4 5 6 7)
|
|
((list-no-order 5 4 2 3 1 c b) (list c b)))
|
|
'(6 7))
|
|
|
|
(mytest-no-order (match '(1 2 3 4 5 6 7)
|
|
((list-no-order 5 a 2 b 1 c 7) (list a c b)))
|
|
'(3 4 6))
|
|
|
|
(mytest-no-order (match '(1 2 3 4 5 6 7)
|
|
((list-no-order 5 4 2 3 1 g ...) g))
|
|
'(6 7))
|
|
|
|
(mytest-no-order (match '(3 2 3 4 3 6 3)
|
|
((list-no-order a b c 3 ...) (list a b c)))
|
|
'(2 4 6))
|
|
|
|
(mytest-no-order (match '(3 3 3 3 3 2 4 6)
|
|
((list-no-order a b c 3 ...) (list a b c)))
|
|
'(2 4 6))
|
|
|
|
(mytest (match '(3 2 3 4 3 6 3)
|
|
((list-no-order a b c ...) #t))
|
|
#t)
|
|
|
|
(mytest-no-order
|
|
(match '(3 s 4 g 5 e s 7)
|
|
((list-no-order (and (? number?) a)
|
|
(and (? number?) b)
|
|
(and (? number?) c)
|
|
(and (? number?) d)
|
|
(and (? symbol?) e)
|
|
f ...) (list a b c d)))
|
|
'(4 5 3 7))
|
|
|
|
(mytest-no-order
|
|
(match '(3 s 4 g 5 e s 7)
|
|
((list-no-order (and (? number?) a)
|
|
(and (? symbol?) b)
|
|
(and (? symbol?) c)
|
|
(and (? symbol?) d)
|
|
(and (? symbol?) e)
|
|
f ...) (list b c d e)))
|
|
'(s g e s))
|
|
|
|
(mytest-no-order
|
|
(match '("yes" a y 3 "no" e s "maybe")
|
|
((list-no-order (and (? number?) a)
|
|
(and (? symbol?) b)
|
|
(and (? symbol?) c)
|
|
(and (? symbol?) d)
|
|
(and (? symbol?) e)
|
|
f ...) f))
|
|
'("yes" "no" "maybe"))
|
|
|
|
(mytest
|
|
(match '()
|
|
((list-no-order) 5))
|
|
5)
|
|
|
|
;; hash-table pattern tests
|
|
|
|
(define (list->hash-table list)
|
|
(let ((ht (make-hash-table)))
|
|
(map (lambda (el)
|
|
(hash-table-put! ht (car el) (cadr el)))
|
|
list)
|
|
ht))
|
|
|
|
(define-syntax hash-table
|
|
(lambda (stx)
|
|
(syntax-case stx ()
|
|
((_ (k v) ...)
|
|
(syntax (list->hash-table (list (list k v) ...)))))))
|
|
|
|
|
|
(mytest (match (hash-table ('a 1) ('b 2) ('c 3))
|
|
((hash-table ('a a) b ('c c)) (list a b c)))
|
|
'(1 (b 2) 3))
|
|
|
|
(mytest (match (hash-table ('a 1) ('b 2) ('c 3))
|
|
((hash-table ('c c) ('a a) ('b b)) (list a b c )))
|
|
'(1 2 3))
|
|
|
|
(mytest (match (hash-table ('a 1) ('b 2) ('c 3))
|
|
((hash-table (a 3) (b 1) (c 2)) (list a b c)))
|
|
'(c a b))
|
|
|
|
(mytest (match (hash-table ('a 1) ('b 2) ('c 3))
|
|
((hash-table (c 3) ('b b) (a 1)) (list a b c)))
|
|
'(a 2 c))
|
|
|
|
(mytest (match (hash-table ('a 1) ('b 2) ('c 3) ('d 1) ('e 1) ('f 1))
|
|
((hash-table (c 3) ('b b) (a 1) ...) (list b c)))
|
|
'(2 c))
|
|
|
|
(mytest-no-order (match (hash-table ('a 1) ('b 2) ('c 3) ('d 1) ('e 1) ('f 1))
|
|
((hash-table (c 3) ('b b) (a 1) ...) a))
|
|
'(a d e f))
|
|
|
|
(mytest (match (hash-table ('a 1) ('b 2) ('c 3) ('d 1) ('e 1) ('f 1))
|
|
((hash-table (c 3) ('b b) (a 1) ..4) (list b c)))
|
|
'(2 c))
|
|
|
|
(mytest-no-order (match (hash-table ('a 1) ('b 2) ('c 3) ('d 1) ('e 1) ('f 1))
|
|
((hash-table (c 3) ('b b) (a 1) ..4) a))
|
|
'(a d e f))
|
|
|
|
(mytest (match (hash-table ('a 1) ('b 2) ('c 3) ('d 1) ('e 1) ('f 1))
|
|
((hash-table (c 3) ('b b) (a 1) ..5) (list b c))
|
|
(_ #f))
|
|
#f)
|
|
|
|
(mytest (match (hash-table ('a 1) ('b 2) ('c "hello") ('d 1) ('e 1) ('f 1))
|
|
((hash-table (a1 a2) (a (? number?)) ...) (list a1 a2)))
|
|
'(c "hello"))
|
|
|
|
(mytest-no-order (match (hash-table ('a 1) ('b 2) ('c "hello") ('d 1) ('e 1) ('f 1))
|
|
((hash-table (a1 a2) (a (? number?)) ...) a))
|
|
'(a b d e f))
|
|
|
|
(mytest (match (hash-table ('a "hey") ('b "ma") ('c "hello") ('d "sup") ('e "down") ('f "dat"))
|
|
((hash-table (a1 a2) (a (and (not "hello") b)) ...) (list a1 a2)))
|
|
'(c "hello"))
|
|
|
|
(mytest-no-order (match (hash-table ('a "hey") ('b "ma") ('c "hello") ('d "sup") ('e "down") ('f "dat"))
|
|
((hash-table (a1 a2) (a (and (not "hello") b)) ...) a))
|
|
'(a b d e f))
|
|
|
|
(mytest-no-order (match (hash-table ('a "hey") ('b "ma") ('c "hello") ('d "sup") ('e "down") ('f "dat"))
|
|
((hash-table (a1 a2) (a (and (not "hello") b)) ...) b))
|
|
'("sup" "hey" "ma" "dat" "down"))
|
|
|
|
|
|
(mytest-no-order (match (hash-table ('a "hey") ('b "ma") ('c "hello") ('d "sup") ('e "down") ('f "dat"))
|
|
((hash-table (k v) ...) k))
|
|
'(d a b f e c))
|
|
|
|
(mytest-no-order (match (hash-table ('a "hey") ('b "ma") ('c "hello") ('d "sup") ('e "down") ('f "dat"))
|
|
((hash-table (k v) ...) v))
|
|
'("sup" "hey" "ma" "dat" "down" "hello"))
|
|
|
|
(mytest (match (hash-table ('a "hey") ('b "ma") ('c "hello") ('d "sup") ('e "down") ('f "dat"))
|
|
((hash-table ('e v1) ('b v2) rest ...) (list v1 v2)))
|
|
'("down" "ma"))
|
|
|
|
(mytest-no-order (match (hash-table ('a "hey") ('b "ma") ('c "hello") ('d "sup") ('e "down") ('f "dat"))
|
|
((hash-table ('e v1) ('b v2) rest ...) rest))
|
|
'((d "sup") (a "hey") (f "dat") (c "hello")))
|
|
|
|
(mytest (match (hash-table)
|
|
((hash-table) 5))
|
|
5)
|
|
|
|
; These cases work but I need a better way of testing them.
|
|
; (mytest (match (hash-table ('a "hey") ('b "sup") ('c "sup") ('d "sup") ('e "down") ('f "dat"))
|
|
; ((hash-table (k "sup") (k2 "sup") (k3 "dat") rest ...) (list k k2 k3)))
|
|
; '(c b f))
|
|
|
|
; (mytest-no-order (match (hash-table ('a "hey") ('b "sup") ('c "sup") ('d "sup") ('e "down") ('f "dat"))
|
|
; ((hash-table (k "sup") (k2 "sup") (k3 "dat") rest ...) rest))
|
|
; '((d "sup") (a "hey") (e "down")))
|
|
|
|
|
|
|
|
|
|
|
|
;; structure tests
|
|
|
|
(define-struct shape (color))
|
|
(define-struct (ovoid shape) (x-diam y-diam))
|
|
(define-struct (circle ovoid) (radius))
|
|
(define-struct (rectangle shape) (height width))
|
|
(define-struct (square rectangle) (width))
|
|
(define c (make-circle 5 4 3 2))
|
|
(mytest (match (list c 5)
|
|
((list (struct shape (a)) 2) 1)
|
|
((list (struct ovoid (a b c)) 2) 2)
|
|
((list (struct circle (a b c d)) 5) 3))
|
|
3)
|
|
|
|
(mytest (match (list c 5)
|
|
((list (struct shape (a)) 2) 1)
|
|
((list (struct ovoid (a b c)) 5) 2)
|
|
((list (struct circle (a b c d)) 5) 3))
|
|
2)
|
|
|
|
(mytest (match (list c 5)
|
|
((list (struct shape (a)) 5) 1)
|
|
((list (struct ovoid (a b c)) 5) 2)
|
|
((list (struct circle (a b c d)) 5) 3))
|
|
1)
|
|
|
|
(mytest (match (list c 6)
|
|
((list (struct shape (a)) 5) 1)
|
|
((list (struct ovoid (a b c)) 5) 2)
|
|
((list (struct circle (a b c d)) 5) 3)
|
|
((list (struct shape (a)) 6) 4))
|
|
4)
|
|
|
|
(mytest (match (list c 5)
|
|
((list (struct rectangle (a b c)) 5) 0)
|
|
((list (struct shape (a)) 2) 1)
|
|
((list (struct ovoid (a b c)) 2) 2)
|
|
((list (struct circle (a b c d)) 5) 3))
|
|
3)
|
|
|
|
(mytest (match (list c 5)
|
|
((list (struct rectangle (a b c)) 5) 0)
|
|
((list (struct shape (a)) 2) 1)
|
|
((list (struct ovoid (a b c)) 5) 2)
|
|
((list (struct circle (a b c d)) 5) 3))
|
|
2)
|
|
|
|
(mytest (match (list c 5)
|
|
((list (struct rectangle (a b c)) 5) 0)
|
|
((list (struct shape (a)) 5) 1)
|
|
((list (struct ovoid (a b c)) 5) 2)
|
|
((list (struct circle (a b c d)) 5) 3))
|
|
1)
|
|
|
|
(mytest (match (list c 5)
|
|
((list (struct square (a b c d)) 5) 0)
|
|
((list (struct shape (a)) 2) 1)
|
|
((list (struct ovoid (a b c)) 2) 2)
|
|
((list (struct circle (a b c d)) 5) 3))
|
|
3)
|
|
|
|
(mytest (match (list c 5)
|
|
((list (struct square (a b c d)) 5) 0)
|
|
((list (struct shape (a)) 2) 1)
|
|
((list (struct ovoid (a b c)) 5) 2)
|
|
((list (struct circle (a b c d)) 5) 3))
|
|
2)
|
|
|
|
(mytest (match (list c 5)
|
|
((list (struct square (a b c d)) 5) 0)
|
|
((list (struct shape (a)) 5) 1)
|
|
((list (struct ovoid (a b c)) 5) 2)
|
|
((list (struct circle (a b c d)) 5) 3))
|
|
1)
|
|
|
|
|
|
;;quasi-quote tests
|
|
|
|
(mytest (match '(a ()) (`(a ()) #t))
|
|
#t)
|
|
|
|
(mytest (match '(1 2 3 4 . 5)
|
|
(`(1 2 ,@(list 3 4) . ,b) b))
|
|
5)
|
|
|
|
(mytest (match '(1 2 3 4 . b)
|
|
(`(,b 2 ,@(list 3 4) . b) b))
|
|
1)
|
|
|
|
(mytest (match '(1 2 3 4)
|
|
(`(,@`(,x ,y) ,@`(,a ,b)) (list x y a b)))
|
|
'(1 2 3 4))
|
|
|
|
(mytest (match '(1 2 3)
|
|
(`(,a ,b ,c) (list a b c)))
|
|
'(1 2 3))
|
|
|
|
;(unquote-splicing (list a b c))
|
|
|
|
(mytest (match '(c a b 1 2 3 r f i)
|
|
(`(c a b ,@(list a b c) r f i) (list a b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(c a b 1 2 3 r f i)
|
|
(`(c a b (unquote-splicing (list a b c)) r f i) (list a b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(3 4 #\c a b 1 (2 (c d)))
|
|
(`(3 4 #\c a b ,a ,(list b `(c e))) 'not-good)
|
|
(`(3 4 #\c a b ,a ,(list b `(c d))) (list a b)))
|
|
'(1 2))
|
|
|
|
(mytest (match #(x 2 x) ;remember that the x's are symbols here
|
|
(`#(x ,x x) (list x)))
|
|
'(2))
|
|
|
|
(mytest (match #(c a b 1 2 3 r f i)
|
|
(`#(c a b ,@(list derby b c) r f i) (list derby b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match #&(c a b 1 2 3 r f i)
|
|
(`#&(c a b ,@(list a b c) r f i) (list a b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match (list
|
|
"hi"
|
|
1
|
|
'there
|
|
#\c
|
|
#t
|
|
#f
|
|
'(a b c)
|
|
'(a b . c)
|
|
'(a b c c c c)
|
|
#(a b c)
|
|
#(a b c c c c)
|
|
#&(a b c)
|
|
'(1 2 3)
|
|
'(4 5 . 6)
|
|
'(7 8 9)
|
|
#(10 11 12)
|
|
#&(13 14 15 16)
|
|
1
|
|
2
|
|
3
|
|
4
|
|
17
|
|
)
|
|
(`(
|
|
"hi"
|
|
1
|
|
there
|
|
#\c
|
|
#t
|
|
#f
|
|
(a b c)
|
|
(a b . c)
|
|
(a b c ..2)
|
|
#(a b c)
|
|
#(a b c ..2)
|
|
#&(a b c)
|
|
,(list a b c)
|
|
,(list-rest c1 d e)
|
|
,(list f g h ...)
|
|
,(vector i j k)
|
|
,(box (list l m n o))
|
|
,@(list 1 2 3 4 p)
|
|
)
|
|
(list
|
|
a b c
|
|
c1 d e
|
|
f g h
|
|
i j k
|
|
l m n o
|
|
p
|
|
)))
|
|
'(1 2 3 4 5 6 7 8 (9) 10 11 12 13 14 15 16 17))
|
|
|
|
(mytest (match (vector
|
|
"hi"
|
|
1
|
|
'there
|
|
#\c
|
|
#t
|
|
#f
|
|
'(a b c)
|
|
'(a b . c)
|
|
'(a b c c c c)
|
|
#(a b c)
|
|
#(a b c c c c)
|
|
#&(a b c)
|
|
'(1 2 3)
|
|
'(4 5 . 6)
|
|
'(7 8 9)
|
|
#(10 11 12)
|
|
#&(13 14 15 16)
|
|
1
|
|
2
|
|
3
|
|
4
|
|
17
|
|
)
|
|
(`#(
|
|
"hi"
|
|
1
|
|
there
|
|
#\c
|
|
#t
|
|
#f
|
|
(a b c)
|
|
(a b . c)
|
|
(a b c ..2)
|
|
#(a b c)
|
|
#(a b c ..2)
|
|
#&(a b c)
|
|
,(list a b c)
|
|
,(list-rest c1 d e)
|
|
,(list f g h ...)
|
|
,(vector i j k)
|
|
,(box (list l m n o))
|
|
,@(list 1 2 3 4 p)
|
|
)
|
|
(list
|
|
a b c
|
|
c1 d e
|
|
f g h
|
|
i j k
|
|
l m n o
|
|
p
|
|
)))
|
|
'(1 2 3 4 5 6 7 8 (9) 10 11 12 13 14 15 16 17))
|
|
|
|
(mytest (match (box (list
|
|
"hi"
|
|
1
|
|
'there
|
|
#\c
|
|
#t
|
|
#f
|
|
'(a b c)
|
|
'(a b . c)
|
|
'(a b c c c c)
|
|
#(a b c)
|
|
#(a b c c c c)
|
|
#&(a b c)
|
|
'(1 2 3)
|
|
'(4 5 . 6)
|
|
'(7 8 9)
|
|
#(10 11 12)
|
|
#&(13 14 15 16)
|
|
1
|
|
2
|
|
3
|
|
4
|
|
17
|
|
))
|
|
(`#&(
|
|
"hi"
|
|
1
|
|
there
|
|
#\c
|
|
#t
|
|
#f
|
|
(a b c)
|
|
(a b . c)
|
|
(a b c ..2)
|
|
#(a b c)
|
|
#(a b c ..2)
|
|
#&(a b c)
|
|
,(list a b c)
|
|
,(list-rest c1 d e)
|
|
,(list f g h ...)
|
|
,(vector i j k)
|
|
,(box (list l m n o))
|
|
,@(list 1 2 3 4 p)
|
|
)
|
|
(list
|
|
a b c
|
|
c1 d e
|
|
f g h
|
|
i j k
|
|
l m n o
|
|
p
|
|
)))
|
|
'(1 2 3 4 5 6 7 8 (9) 10 11 12 13 14 15 16 17))
|
|
|
|
;; separate
|
|
|
|
|
|
(define-struct test-struct (a b c d))
|
|
(define inst-struct-name29 (make-test-struct `#\b `2 `(+ 4 5) `symbols))
|
|
(define inst-struct-name33
|
|
(make-test-struct
|
|
`(,inst-struct-name29 (+ 1 2) #\c (+ 4 5))
|
|
`()
|
|
`(these #\d #t)
|
|
`16))
|
|
(define inst-struct-name46 (make-test-struct `#\c `#\d `16 `4))
|
|
(define inst-struct-name54 (make-test-struct `#\c `4 `#\c `#\b))
|
|
(define inst-struct-name72 (make-test-struct `#f `4 `4 `#\c))
|
|
(define inst-struct-name75
|
|
(make-test-struct
|
|
`(+ 4 (+ 1 1))
|
|
`,inst-struct-name72
|
|
`#3(9 #\b 9)
|
|
`(+ 4 5)))
|
|
(define inst-struct-name77
|
|
(make-test-struct `#\c `(#\d symbols these) `,inst-struct-name75 `these))
|
|
(define inst-struct-name84 (make-test-struct `#\b `4 `#\c `#\d))
|
|
(define inst-struct-name90 (make-test-struct `symbols `#\a `#\c `symbols))
|
|
(define inst-struct-name116
|
|
(make-test-struct `symbols `(+ 4 (+ 1 1)) `4 `#\b))
|
|
(define inst-struct-name145 (make-test-struct `(+ 1 2) `4 `symbols `these))
|
|
(define inst-struct-name147
|
|
(make-test-struct
|
|
`#f
|
|
`((+ 4 (+ 1 1)) these 6)
|
|
`#4(are () ,inst-struct-name145 (+ 4 (+ 1 1)))
|
|
`()))
|
|
(define inst-struct-name158
|
|
(make-test-struct `18 `(#\b 2 #t) `() `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name164
|
|
(make-test-struct
|
|
`()
|
|
`,inst-struct-name158
|
|
`#\d
|
|
`(#3(these these 1) #\b (#\c #f (+ 4 (+ 1 1))) . #f)))
|
|
(define inst-struct-name173 (make-test-struct `#\b `#\b `#\b `are))
|
|
(define inst-struct-name175
|
|
(make-test-struct `() `#&((+ 1 2) #t (+ 4 5)) `,inst-struct-name173 `#t))
|
|
(define inst-struct-name190
|
|
(make-test-struct
|
|
`,inst-struct-name175
|
|
`()
|
|
`#f
|
|
`((are #\b 5) these #4((+ 1 2) 8 these (+ 1 2)) . #f)))
|
|
(define inst-struct-name198 (make-test-struct `these `#t `7 `(+ 4 5)))
|
|
(define inst-struct-name218
|
|
(make-test-struct `(+ 4 (+ 1 1)) `#4((+ 4 5) symbols 2 4) `#\a `#\d))
|
|
(define inst-struct-name224 (make-test-struct `#\b `(+ 1 2) `4 `these))
|
|
(define inst-struct-name250 (make-test-struct `7 `symbols `are `these))
|
|
(define inst-struct-name260
|
|
(make-test-struct
|
|
`(symbols #\b symbols)
|
|
`()
|
|
`(symbols (+ 1 2) 5 #\d)
|
|
`(#\a #\c #\c . 1)))
|
|
(define inst-struct-name272
|
|
(make-test-struct `#&(#\b #\a #f) `#3((+ 4 5) #\b #t) `#\b `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name281 (make-test-struct `#\b `5 `(+ 1 2) `4))
|
|
(define inst-struct-name286 (make-test-struct `#\b `(+ 4 5) `0 `1))
|
|
(define inst-struct-name288
|
|
(make-test-struct
|
|
`#&(#\b #\b #\b)
|
|
`(these (+ 1 2) #\c)
|
|
`,inst-struct-name281
|
|
`,inst-struct-name286))
|
|
(define inst-struct-name304 (make-test-struct `#\d `are `#f `7))
|
|
(define inst-struct-name305
|
|
(make-test-struct `#\d `(7 #\c #\c) `2 `,inst-struct-name304))
|
|
(define inst-struct-name317 (make-test-struct `9 `#\c `symbols `#\b))
|
|
(define inst-struct-name318
|
|
(make-test-struct `() `,inst-struct-name317 `symbols `0))
|
|
(define inst-struct-name334 (make-test-struct `#\d `#f `(+ 4 5) `7))
|
|
(define inst-struct-name350
|
|
(make-test-struct
|
|
`()
|
|
`(+ 4 (+ 1 1))
|
|
`#&(#\d 2 #f)
|
|
`#4(#\a these #t (+ 1 2))))
|
|
(define inst-struct-name359
|
|
(make-test-struct `(+ 4 (+ 1 1)) `(+ 4 5) `#\b `#\a))
|
|
(define inst-struct-name372 (make-test-struct `symbols `6 `4 `#\c))
|
|
(define inst-struct-name385 (make-test-struct `#\d `8 `#\a `#\a))
|
|
(define inst-struct-name399
|
|
(make-test-struct `4 `() `#\a `#3(#f (+ 4 5) #f)))
|
|
(define inst-struct-name408
|
|
(make-test-struct `these `(+ 4 (+ 1 1)) `((+ 4 (+ 1 1)) (+ 4 5) are) `#\a))
|
|
(define inst-struct-name417
|
|
(make-test-struct `6 `#\b `(+ 4 (+ 1 1)) `(+ 4 5)))
|
|
(define inst-struct-name424
|
|
(make-test-struct
|
|
`(#4((+ 4 (+ 1 1)) #\b 7 #\a)
|
|
,inst-struct-name417
|
|
((+ 4 5) are 9 . these)
|
|
.
|
|
#f)
|
|
`(#t #\a #f)
|
|
`()
|
|
`(are #\b 4)))
|
|
(define inst-struct-name431
|
|
(make-test-struct
|
|
`these
|
|
`3
|
|
`#4((+ 4 (+ 1 1)) symbols 1 are)
|
|
`(8 #t (+ 4 (+ 1 1)))))
|
|
(define inst-struct-name433
|
|
(make-test-struct `() `1 `,inst-struct-name431 `are))
|
|
(define inst-struct-name477
|
|
(make-test-struct `#t `() `these `#4((+ 4 5) #t #t #\c)))
|
|
(define inst-struct-name487
|
|
(make-test-struct `((7 these #\b) (+ 4 (+ 1 1)) #t . 0) `() `(+ 4 5) `7))
|
|
(define inst-struct-name514
|
|
(make-test-struct `(+ 4 5) `#\b `(+ 4 (+ 1 1)) `#t))
|
|
(define inst-struct-name522
|
|
(make-test-struct
|
|
`,inst-struct-name514
|
|
`(#\b #t #\d . #\a)
|
|
`(7 5 #f . #\b)
|
|
`#\c))
|
|
(define inst-struct-name530 (make-test-struct `8 `5 `#\c `7))
|
|
(define inst-struct-name541 (make-test-struct `(+ 1 2) `4 `symbols `(+ 1 2)))
|
|
(define inst-struct-name545
|
|
(make-test-struct `,inst-struct-name541 `8 `() `()))
|
|
(define inst-struct-name547
|
|
(make-test-struct
|
|
`are
|
|
`(9 (#f symbols #\d) ,inst-struct-name530 symbols)
|
|
`(4 #\b #t)
|
|
`,inst-struct-name545))
|
|
(define inst-struct-name554
|
|
(make-test-struct `#3(#\d #f #\d) `are `1 `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name597 (make-test-struct `#\d `(+ 4 (+ 1 1)) `2 `#\a))
|
|
(define inst-struct-name600
|
|
(make-test-struct
|
|
`#f
|
|
`(these #\b 7)
|
|
`(18 #3(#f (+ 4 5) #t) ,inst-struct-name597 (#t 8 these))
|
|
`(+ 4 (+ 1 1))))
|
|
(define inst-struct-name618
|
|
(make-test-struct `#&((+ 4 5) #\d #\c) `are `() `()))
|
|
(define inst-struct-name642
|
|
(make-test-struct `#\d `(+ 4 5) `(+ 4 5) `(+ 1 2)))
|
|
(define inst-struct-name661 (make-test-struct `#\a `#\c `#f `#\c))
|
|
(define inst-struct-name669
|
|
(make-test-struct
|
|
`,inst-struct-name661
|
|
`(#\b #\b #f . #\a)
|
|
`(#\d #t (+ 1 2) . #\b)
|
|
`#t))
|
|
|
|
(define (let-tests)
|
|
(list
|
|
(mytest
|
|
(match-letrec
|
|
(((list
|
|
(box
|
|
(list
|
|
(and (? number? tlp327) (? even? tlp328))
|
|
(vector tlp329 ...)
|
|
(list tlp330 ..3)))
|
|
#0=(list)
|
|
tlp331
|
|
(or (vector tlp332 ...) (vector tlp332 ...)))
|
|
`(#&(2 #3(6 (+ 1 2) #t) (#\c #t symbols)) () #\b #3(#\d #f #\b))))
|
|
(list tlp327 tlp329 tlp330 tlp331 tlp332))
|
|
'(2 (6 (+ 1 2) #t) (#\c #t symbols) #\b (#\d #f #\b)))
|
|
(mytest
|
|
(match-let*
|
|
(((list
|
|
(vector tlp333 ...)
|
|
(list-rest
|
|
(and (? test-struct? tlp335)
|
|
(app test-struct-a (and _ _))
|
|
(app test-struct-b (not (not #f)))
|
|
(app test-struct-c '(+ 4 5))
|
|
(app test-struct-d 7))
|
|
(and (? number? tlp336) (? even? tlp337))
|
|
tlp338
|
|
'these)
|
|
(list-rest
|
|
tlp339
|
|
(not (not 'these))
|
|
(struct
|
|
test-struct
|
|
((list)
|
|
'(+ 4 (+ 1 1))
|
|
(and (box (list tlp340 tlp341 tlp342))
|
|
(box (list tlp343 tlp344 tlp345)))
|
|
(vector tlp346 tlp347 tlp348 tlp349)))
|
|
#\a)
|
|
(vector tlp351 ...))
|
|
`(#3(#\a #\a 4)
|
|
(,inst-struct-name334 12 (+ 1 2) . these)
|
|
((+ 4 (+ 1 1)) these ,inst-struct-name350 . #\a)
|
|
#3(#\b #\d 4))))
|
|
(list
|
|
tlp333
|
|
tlp336
|
|
tlp338
|
|
tlp339
|
|
tlp340
|
|
tlp341
|
|
tlp342
|
|
tlp346
|
|
tlp347
|
|
tlp348
|
|
tlp349
|
|
tlp351))
|
|
'((#\a #\a 4)
|
|
12
|
|
(+ 1 2)
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
2
|
|
#f
|
|
#\a
|
|
these
|
|
#t
|
|
(+ 1 2)
|
|
(#\b #\d 4)))))
|
|
(define (multi-let-tests)
|
|
(list
|
|
(mytest
|
|
(match-let
|
|
(((list
|
|
tlp352
|
|
(vector
|
|
(box
|
|
(list
|
|
(or _ _)
|
|
(and (? number? tlp353) (? even? tlp354))
|
|
(struct test-struct (tlp355 tlp356 tlp357 tlp358))))
|
|
(list
|
|
_
|
|
(list tlp360 ..3)
|
|
(and (? number? tlp361) (? even? tlp362))
|
|
(or (list tlp363 ..3) (list tlp363 ..3)))
|
|
(list
|
|
(not (not 'symbols))
|
|
(and (and tlp364 tlp365) (and tlp366 tlp367))
|
|
(struct test-struct (tlp368 tlp369 tlp370 tlp371))
|
|
_)
|
|
tlp373)
|
|
(list-rest (list tlp374 ...) (list tlp375 ...) _ #\c)
|
|
(and (? number? tlp376) (? even? tlp377)))
|
|
`((+ 1 2)
|
|
#4(#&(2 16 ,inst-struct-name359)
|
|
(#\a (are #\c #t) 8 (#\b #\a #\d))
|
|
(symbols #\b ,inst-struct-name372 4)
|
|
#\b)
|
|
((2 6 #\c) (#\d #t #t) 1 . #\c)
|
|
16))
|
|
((list (list) (box (list (list) tlp378 (not (not #\c)))) #\b tlp379)
|
|
`(() #&(() #\c #\c) #\b #\d)))
|
|
(list
|
|
tlp352
|
|
tlp353
|
|
tlp355
|
|
tlp356
|
|
tlp357
|
|
tlp358
|
|
tlp360
|
|
tlp361
|
|
tlp363
|
|
tlp364
|
|
tlp368
|
|
tlp369
|
|
tlp370
|
|
tlp371
|
|
tlp373
|
|
tlp374
|
|
tlp375
|
|
tlp376
|
|
tlp378
|
|
tlp379))
|
|
'((+ 1 2)
|
|
16
|
|
(+ 4 (+ 1 1))
|
|
(+ 4 5)
|
|
#\b
|
|
#\a
|
|
(are #\c #t)
|
|
8
|
|
(#\b #\a #\d)
|
|
#\b
|
|
symbols
|
|
6
|
|
4
|
|
#\c
|
|
#\b
|
|
(2 6 #\c)
|
|
(#\d #t #t)
|
|
16
|
|
#\c
|
|
#\d))
|
|
(mytest
|
|
(match-letrec
|
|
(((list
|
|
(box
|
|
(list
|
|
(list-rest
|
|
(not (not 8))
|
|
(vector tlp380 ...)
|
|
(and (? test-struct? tlp386)
|
|
(app test-struct-a tlp381)
|
|
(app test-struct-b tlp382)
|
|
(app test-struct-c tlp383)
|
|
(app test-struct-d tlp384))
|
|
#\a)
|
|
(box (list #t (vector tlp387 ___) (list tlp388 ..3)))
|
|
(and tlp389 tlp390)))
|
|
(not (not 6))
|
|
(list)
|
|
'(+ 4 (+ 1 1)))
|
|
`(#&((8 #3(#\c #\a are) ,inst-struct-name385 . #\a)
|
|
#&(#t #3(#f #\c #t) (these #\b (+ 1 2)))
|
|
(+ 4 5))
|
|
6
|
|
()
|
|
(+ 4 (+ 1 1))))
|
|
((list (list tlp391 __3) (not (not 3)) tlp392 (list tlp393 ...))
|
|
`(((+ 1 2) #f (+ 4 (+ 1 1))) 3 are (symbols #\a #\d))))
|
|
(list
|
|
tlp380
|
|
tlp381
|
|
tlp382
|
|
tlp383
|
|
tlp384
|
|
tlp387
|
|
tlp388
|
|
tlp389
|
|
tlp391
|
|
tlp392
|
|
tlp393))
|
|
'((#\c #\a are)
|
|
#\d
|
|
8
|
|
#\a
|
|
#\a
|
|
(#f #\c #t)
|
|
(these #\b (+ 1 2))
|
|
(+ 4 5)
|
|
((+ 1 2) #f (+ 4 (+ 1 1)))
|
|
are
|
|
(symbols #\a #\d)))))
|
|
(define (define-tests)
|
|
(list
|
|
(mytest
|
|
(let ()
|
|
(match-define
|
|
(list
|
|
tlp394
|
|
(struct
|
|
test-struct
|
|
((and (? number? tlp395) (? even? tlp396))
|
|
(list)
|
|
tlp397
|
|
(vector tlp398 ___)))
|
|
_
|
|
(vector tlp400 ...))
|
|
`(symbols ,inst-struct-name399 #t #3(these #f 6)))
|
|
(list tlp394 tlp395 tlp397 tlp398 tlp400))
|
|
'(symbols 4 #\a (#f (+ 4 5) #f) (these #f 6)))
|
|
(mytest
|
|
(let ()
|
|
(match-define
|
|
(list tlp401 tlp402 (list tlp403 ..3) (vector tlp404 ...))
|
|
`(#\a #t ((+ 4 5) #\d #t) #3((+ 1 2) #t 6)))
|
|
(list tlp401 tlp402 tlp403 tlp404))
|
|
'(#\a #t ((+ 4 5) #\d #t) ((+ 1 2) #t 6)))))
|
|
(define (sing-match-tests)
|
|
(list
|
|
(let ((tlp435
|
|
(lambda (tlp405)
|
|
(match
|
|
tlp405
|
|
((list
|
|
(struct
|
|
test-struct
|
|
(tlp406 '(+ 4 (+ 1 1)) (list tlp407 __3) _))
|
|
_
|
|
(struct
|
|
test-struct
|
|
((list-rest
|
|
(vector tlp409 tlp410 tlp411 tlp412)
|
|
(and (? test-struct? tlp418)
|
|
(app test-struct-a tlp413)
|
|
(app test-struct-b tlp414)
|
|
(app test-struct-c tlp415)
|
|
(app test-struct-d tlp416))
|
|
(list-rest tlp419 tlp420 tlp421 'these)
|
|
#f)
|
|
(list tlp422 ...)
|
|
(list)
|
|
(list tlp423 ...)))
|
|
(and (? test-struct? tlp434)
|
|
(app test-struct-a (list))
|
|
(app test-struct-b tlp425)
|
|
(app
|
|
test-struct-c
|
|
(and (? test-struct? tlp432)
|
|
(app test-struct-a 'these)
|
|
(app
|
|
test-struct-b
|
|
(and (not (not 3)) (not (not 3))))
|
|
(app
|
|
test-struct-c
|
|
(vector tlp426 tlp427 tlp428 tlp429))
|
|
(app test-struct-d (list tlp430 ___))))
|
|
(app test-struct-d 'are)))
|
|
(list
|
|
tlp406
|
|
tlp407
|
|
tlp409
|
|
tlp410
|
|
tlp411
|
|
tlp412
|
|
tlp413
|
|
tlp414
|
|
tlp415
|
|
tlp416
|
|
tlp419
|
|
tlp420
|
|
tlp421
|
|
tlp422
|
|
tlp423
|
|
tlp425
|
|
tlp426
|
|
tlp427
|
|
tlp428
|
|
tlp429
|
|
tlp430))))))
|
|
(list
|
|
(mytest
|
|
(tlp435
|
|
`(,inst-struct-name408
|
|
#\d
|
|
,inst-struct-name424
|
|
,inst-struct-name433))
|
|
'(these
|
|
((+ 4 (+ 1 1)) (+ 4 5) are)
|
|
(+ 4 (+ 1 1))
|
|
#\b
|
|
7
|
|
#\a
|
|
6
|
|
#\b
|
|
(+ 4 (+ 1 1))
|
|
(+ 4 5)
|
|
(+ 4 5)
|
|
are
|
|
9
|
|
(#t #\a #f)
|
|
(are #\b 4)
|
|
1
|
|
(+ 4 (+ 1 1))
|
|
symbols
|
|
1
|
|
are
|
|
(8 #t (+ 4 (+ 1 1)))))))
|
|
(let ((tlp441
|
|
(lambda (tlp436)
|
|
(match
|
|
tlp436
|
|
((list
|
|
(list tlp437 ..3)
|
|
_
|
|
(and (list tlp438 ..3) (list tlp439 ..3))
|
|
tlp440)
|
|
(list tlp437 tlp438 tlp440))))))
|
|
(list
|
|
(mytest
|
|
(tlp441 `((#f #t #f) #t (these #\c #\b) 1))
|
|
'((#f #t #f) (these #\c #\b) 1))))))
|
|
(define (mult-match-tests)
|
|
(list
|
|
(let ((tlp480
|
|
(lambda (tlp442)
|
|
(match
|
|
tlp442
|
|
((list
|
|
(and (list tlp443 ___) (list tlp444 ___))
|
|
(box
|
|
(list
|
|
(box (list #f tlp445 tlp446))
|
|
(vector
|
|
(list tlp447 __3)
|
|
(list)
|
|
5
|
|
(or (vector tlp448 ___) (vector tlp448 ___)))
|
|
(box
|
|
(list
|
|
(or (not (not '(+ 4 (+ 1 1))))
|
|
(not (not '(+ 4 (+ 1 1)))))
|
|
(list)
|
|
(list-rest tlp449 tlp450 tlp451 #f)))))
|
|
(vector
|
|
#\d
|
|
_
|
|
(box
|
|
(list
|
|
(vector tlp452 ___)
|
|
(and (list) (list))
|
|
(and (vector tlp453 ___) (vector tlp454 ___))))
|
|
(vector
|
|
(list tlp455 ...)
|
|
(and (? number? tlp456) (? even? tlp457))
|
|
(vector tlp458 tlp459 tlp460 tlp461)
|
|
#\b))
|
|
(list))
|
|
(list
|
|
tlp443
|
|
tlp445
|
|
tlp446
|
|
tlp447
|
|
tlp448
|
|
tlp449
|
|
tlp450
|
|
tlp451
|
|
tlp452
|
|
tlp453
|
|
tlp455
|
|
tlp456
|
|
tlp458
|
|
tlp459
|
|
tlp460
|
|
tlp461))
|
|
((list
|
|
(list tlp462 ..3)
|
|
tlp463
|
|
(list-rest
|
|
(list-rest
|
|
#\d
|
|
(list tlp464 tlp465 tlp466 tlp467)
|
|
(list-rest tlp468 tlp469 tlp470 'these)
|
|
#\b)
|
|
'symbols
|
|
(and (? test-struct? tlp478)
|
|
(app test-struct-a tlp471)
|
|
(app test-struct-b (list))
|
|
(app test-struct-c tlp472)
|
|
(app
|
|
test-struct-d
|
|
(vector tlp473 tlp474 tlp475 tlp476)))
|
|
7)
|
|
tlp479)
|
|
(list
|
|
tlp462
|
|
tlp463
|
|
tlp464
|
|
tlp465
|
|
tlp466
|
|
tlp467
|
|
tlp468
|
|
tlp469
|
|
tlp470
|
|
tlp471
|
|
tlp472
|
|
tlp473
|
|
tlp474
|
|
tlp475
|
|
tlp476
|
|
tlp479))))))
|
|
(list
|
|
(mytest
|
|
(tlp480
|
|
`((#t #\d symbols)
|
|
#&(#&(#f 3 #\d)
|
|
#4((are #\b #\c) () 5 #3(#\b #f))
|
|
#&((+ 4 (+ 1 1)) () (symbols #\c #\a . #f)))
|
|
#4(#\d
|
|
2
|
|
#&(#3(#t 9 #f) () #3((+ 4 5) #f 6))
|
|
#4((#\c 8 symbols) 2 #4(7 (+ 1 2) #f #\d) #\b))
|
|
()))
|
|
'((#t #\d symbols)
|
|
3
|
|
#\d
|
|
(are #\b #\c)
|
|
(#\b #f #f)
|
|
symbols
|
|
#\c
|
|
#\a
|
|
(#t 9 #f)
|
|
((+ 4 5) #f 6)
|
|
(#\c 8 symbols)
|
|
2
|
|
7
|
|
(+ 1 2)
|
|
#f
|
|
#\d))
|
|
(mytest
|
|
(tlp480
|
|
`((are 0 are)
|
|
#\b
|
|
((#\d ((+ 1 2) #\c symbols #\b) (#\a (+ 4 5) 3 . these) . #\b)
|
|
symbols
|
|
,inst-struct-name477
|
|
.
|
|
7)
|
|
#\d))
|
|
'((are 0 are)
|
|
#\b
|
|
(+ 1 2)
|
|
#\c
|
|
symbols
|
|
#\b
|
|
#\a
|
|
(+ 4 5)
|
|
3
|
|
#t
|
|
these
|
|
(+ 4 5)
|
|
#t
|
|
#t
|
|
#\c
|
|
#\d))))
|
|
(let ((tlp508
|
|
(lambda (tlp481)
|
|
(match
|
|
tlp481
|
|
((list
|
|
(list-rest tlp482 tlp483 (list) #\a)
|
|
(struct
|
|
test-struct
|
|
((list-rest (list tlp484 ___) tlp485 (not (not #t)) 0)
|
|
(list)
|
|
tlp486
|
|
(not (not 7))))
|
|
(and (? number? tlp488) (? even? tlp489))
|
|
#\a)
|
|
(list tlp482 tlp483 tlp484 tlp485 tlp486 tlp488))
|
|
((list
|
|
(list tlp490 ..3)
|
|
(box
|
|
(list
|
|
(and (? number? tlp491) (? even? tlp492))
|
|
(and (vector
|
|
(vector tlp493 ...)
|
|
tlp494
|
|
(vector tlp495 ...)
|
|
(box (list tlp496 tlp497 tlp498)))
|
|
(vector
|
|
(vector tlp499 ...)
|
|
tlp500
|
|
(vector tlp501 ...)
|
|
(box (list tlp502 tlp503 tlp504))))
|
|
(and (? number? tlp505) (? even? tlp506))))
|
|
tlp507
|
|
#\c)
|
|
(list
|
|
tlp490
|
|
tlp491
|
|
tlp493
|
|
tlp494
|
|
tlp495
|
|
tlp496
|
|
tlp497
|
|
tlp498
|
|
tlp505
|
|
tlp507))))))
|
|
(list
|
|
(mytest
|
|
(tlp508 `((symbols 4 () . #\a) ,inst-struct-name487 18 #\a))
|
|
'(symbols 4 (7 these #\b) (+ 4 (+ 1 1)) (+ 4 5) 18))
|
|
(mytest
|
|
(tlp508
|
|
`((7 #t #f)
|
|
#&(14
|
|
#4(#3(#\c are 7)
|
|
(+ 4 (+ 1 1))
|
|
#3(#f 9 symbols)
|
|
#&(symbols #\a are))
|
|
18)
|
|
these
|
|
#\c))
|
|
'((7 #t #f)
|
|
14
|
|
(#\c are 7)
|
|
(+ 4 (+ 1 1))
|
|
(#f 9 symbols)
|
|
symbols
|
|
#\a
|
|
are
|
|
18
|
|
these))))))
|
|
(define (sing-match-lambda-tests)
|
|
(list
|
|
(let ((tlp550
|
|
(match-lambda
|
|
((list
|
|
(box
|
|
(list
|
|
#\d
|
|
(box (list tlp509 'are _))
|
|
(struct
|
|
test-struct
|
|
((struct test-struct (tlp510 tlp511 tlp512 tlp513))
|
|
(list-rest tlp515 tlp516 tlp517 #\a)
|
|
(list-rest tlp518 tlp519 tlp520 #\b)
|
|
tlp521))))
|
|
(vector tlp523 ___)
|
|
(and (? test-struct? tlp548)
|
|
(app test-struct-a 'are)
|
|
(app
|
|
test-struct-b
|
|
(list
|
|
tlp524
|
|
(list tlp525 ...)
|
|
(and (struct test-struct (tlp526 tlp527 tlp528 tlp529))
|
|
(struct
|
|
test-struct
|
|
(tlp531 tlp532 tlp533 tlp534)))
|
|
tlp535))
|
|
(app test-struct-c (list tlp536 ...))
|
|
(app
|
|
test-struct-d
|
|
(and (? test-struct? tlp546)
|
|
(app
|
|
test-struct-a
|
|
(and (? test-struct? tlp542)
|
|
(app test-struct-a tlp537)
|
|
(app test-struct-b tlp538)
|
|
(app test-struct-c tlp539)
|
|
(app test-struct-d tlp540)))
|
|
(app
|
|
test-struct-b
|
|
(and (? number? tlp543) (? even? tlp544)))
|
|
(app test-struct-c (list))
|
|
(app test-struct-d (list)))))
|
|
tlp549)
|
|
(list
|
|
tlp509
|
|
tlp510
|
|
tlp511
|
|
tlp512
|
|
tlp513
|
|
tlp515
|
|
tlp516
|
|
tlp517
|
|
tlp518
|
|
tlp519
|
|
tlp520
|
|
tlp521
|
|
tlp523
|
|
tlp524
|
|
tlp525
|
|
tlp526
|
|
tlp527
|
|
tlp528
|
|
tlp529
|
|
tlp535
|
|
tlp536
|
|
tlp537
|
|
tlp538
|
|
tlp539
|
|
tlp540
|
|
tlp543
|
|
tlp549)))))
|
|
(list
|
|
(mytest
|
|
(tlp550
|
|
`(#&(#\d #&(#\a are are) ,inst-struct-name522)
|
|
#3(#\c #\b #f)
|
|
,inst-struct-name547
|
|
7))
|
|
'(#\a
|
|
(+ 4 5)
|
|
#\b
|
|
(+ 4 (+ 1 1))
|
|
#t
|
|
#\b
|
|
#t
|
|
#\d
|
|
7
|
|
5
|
|
#f
|
|
#\c
|
|
(#\c #\b #f)
|
|
9
|
|
(#f symbols #\d)
|
|
8
|
|
5
|
|
#\c
|
|
7
|
|
symbols
|
|
(4 #\b #t)
|
|
(+ 1 2)
|
|
4
|
|
symbols
|
|
(+ 1 2)
|
|
8
|
|
7))))
|
|
(let ((tlp555
|
|
(match-lambda
|
|
((list
|
|
tlp551
|
|
(struct test-struct ((vector tlp552 ...) 'are _ tlp553))
|
|
(list)
|
|
(list))
|
|
(list tlp551 tlp552 tlp553)))))
|
|
(list
|
|
(mytest
|
|
(tlp555 `(#\b ,inst-struct-name554 () ()))
|
|
'(#\b (#\d #f #\d) (+ 4 (+ 1 1))))))))
|
|
(define (mult-match-lambda-tests)
|
|
(list
|
|
(let ((tlp580
|
|
(match-lambda
|
|
((list
|
|
(not (not #f))
|
|
(box
|
|
(list
|
|
tlp556
|
|
(and (list tlp557 ___) (list tlp558 ___))
|
|
(and (? number? tlp559) (? even? tlp560))))
|
|
tlp561
|
|
(list))
|
|
(list tlp556 tlp557 tlp559 tlp561))
|
|
((list
|
|
_
|
|
(list tlp562 ..3)
|
|
'(+ 4 (+ 1 1))
|
|
(vector
|
|
(list
|
|
(vector tlp563 tlp564 tlp565 tlp566)
|
|
tlp567
|
|
(box (list tlp568 tlp569 tlp570))
|
|
tlp571)
|
|
(and tlp572 tlp573)
|
|
(box
|
|
(list
|
|
(box (list tlp574 tlp575 tlp576))
|
|
(not (not #f))
|
|
(list-rest tlp577 tlp578 tlp579 #\b)))
|
|
#f))
|
|
(list
|
|
tlp562
|
|
tlp563
|
|
tlp564
|
|
tlp565
|
|
tlp566
|
|
tlp567
|
|
tlp568
|
|
tlp569
|
|
tlp570
|
|
tlp571
|
|
tlp572
|
|
tlp574
|
|
tlp575
|
|
tlp576
|
|
tlp577
|
|
tlp578
|
|
tlp579)))))
|
|
(list
|
|
(mytest
|
|
(tlp580 `(#f #&(9 (#\c (+ 1 2) symbols) 16) #\c ()))
|
|
'(9 (#\c (+ 1 2) symbols) 16 #\c))
|
|
(mytest
|
|
(tlp580
|
|
`(#f
|
|
(#\a #t 5)
|
|
(+ 4 (+ 1 1))
|
|
#4((#4(9 #\c (+ 4 (+ 1 1)) symbols) 7 #&(#\a #t (+ 4 5)) #t)
|
|
#\b
|
|
#&(#&(5 #\d #t) #f ((+ 1 2) #t #\b . #\b))
|
|
#f)))
|
|
'((#\a #t 5)
|
|
9
|
|
#\c
|
|
(+ 4 (+ 1 1))
|
|
symbols
|
|
7
|
|
#\a
|
|
#t
|
|
(+ 4 5)
|
|
#t
|
|
#\b
|
|
5
|
|
#\d
|
|
#t
|
|
(+ 1 2)
|
|
#t
|
|
#\b))))
|
|
(let ((tlp604
|
|
(match-lambda
|
|
((list
|
|
(and (? number? tlp581) (? even? tlp582))
|
|
tlp583
|
|
(box
|
|
(list
|
|
'(+ 4 5)
|
|
(box
|
|
(list
|
|
tlp584
|
|
(and (? number? tlp585) (? even? tlp586))
|
|
(or (or tlp587 tlp587) (or tlp587 tlp587))))
|
|
'(+ 4 5)))
|
|
(vector tlp588 ...))
|
|
(list tlp581 tlp583 tlp584 tlp585 tlp587 tlp588))
|
|
((list
|
|
(and (? test-struct? tlp601)
|
|
(app test-struct-a #f)
|
|
(app test-struct-b (list tlp589 ...))
|
|
(app
|
|
test-struct-c
|
|
(list
|
|
(and (? number? tlp590) (? even? tlp591))
|
|
(vector tlp592 ...)
|
|
(and (? test-struct? tlp598)
|
|
(app test-struct-a tlp593)
|
|
(app test-struct-b tlp594)
|
|
(app test-struct-c tlp595)
|
|
(app test-struct-d tlp596))
|
|
(list tlp599 __3)))
|
|
(app test-struct-d '(+ 4 (+ 1 1))))
|
|
#f
|
|
(vector tlp602 ___)
|
|
(list tlp603 ___))
|
|
(list
|
|
tlp589
|
|
tlp590
|
|
tlp592
|
|
tlp593
|
|
tlp594
|
|
tlp595
|
|
tlp596
|
|
tlp599
|
|
tlp602
|
|
tlp603)))))
|
|
(list
|
|
(mytest
|
|
(tlp604
|
|
`(18 #\a #&((+ 4 5) #&(these 0 #\d) (+ 4 5)) #3(1 (+ 1 2) symbols)))
|
|
'(18 #\a these 0 #\d (1 (+ 1 2) symbols)))
|
|
(mytest
|
|
(tlp604 `(,inst-struct-name600 #f #3(4 0 #\d) (are 7 #\c)))
|
|
'((these #\b 7)
|
|
18
|
|
(#f (+ 4 5) #t)
|
|
#\d
|
|
(+ 4 (+ 1 1))
|
|
2
|
|
#\a
|
|
(#t 8 these)
|
|
(4 0 #\d)
|
|
(are 7 #\c)))))))
|
|
(define (sing-match-lambda*-tests)
|
|
(list
|
|
(let ((tlp610
|
|
(match-lambda*
|
|
((list tlp606 tlp607 (list tlp608 ___) tlp609)
|
|
(list tlp606 tlp607 tlp608 tlp609)))))
|
|
(list
|
|
(mytest
|
|
(tlp610 `#f `#\c `((+ 4 (+ 1 1)) 7 #t) `3)
|
|
'(#f #\c ((+ 4 (+ 1 1)) 7 #t) 3))))
|
|
(let ((tlp620
|
|
(match-lambda*
|
|
((list
|
|
(list
|
|
'(+ 4 5)
|
|
(vector tlp612 ___)
|
|
(list tlp613 __3)
|
|
(struct
|
|
test-struct
|
|
((box (list tlp614 tlp615 tlp616)) tlp617 (list) (list))))
|
|
tlp619
|
|
(box (list 7 '(+ 4 (+ 1 1)) (list)))
|
|
_)
|
|
(list tlp612 tlp613 tlp614 tlp615 tlp616 tlp617 tlp619)))))
|
|
(list
|
|
(mytest
|
|
(tlp620
|
|
`((+ 4 5) #3(1 9 (+ 1 2)) (3 these these) ,inst-struct-name618)
|
|
`#\c
|
|
`#&(7 (+ 4 (+ 1 1)) ())
|
|
`(+ 1 2))
|
|
'((1 9 (+ 1 2)) (3 these these) (+ 4 5) #\d #\c are #\c))))))
|
|
(define (mult-match-lambda*-tests)
|
|
(list
|
|
(let ((tlp645
|
|
(match-lambda*
|
|
((list
|
|
(box
|
|
(list
|
|
(and (? number? tlp622) (? even? tlp623))
|
|
(list-rest
|
|
(list tlp624 ___)
|
|
(and (? number? tlp625) (? even? tlp626))
|
|
#\c
|
|
#\a)
|
|
tlp627))
|
|
tlp628
|
|
(list tlp629 ___)
|
|
#\c)
|
|
(list tlp622 tlp624 tlp625 tlp627 tlp628 tlp629))
|
|
((list
|
|
tlp630
|
|
(or (vector
|
|
_
|
|
(vector tlp631 ...)
|
|
(vector
|
|
(list-rest tlp632 tlp633 tlp634 tlp635)
|
|
(and tlp636 tlp637)
|
|
#\b
|
|
(struct test-struct (tlp638 tlp639 tlp640 tlp641)))
|
|
(list))
|
|
(vector
|
|
_
|
|
(vector tlp631 ...)
|
|
(vector
|
|
(list-rest tlp632 tlp633 tlp634 tlp635)
|
|
(and tlp636 tlp637)
|
|
#\b
|
|
(struct test-struct (tlp638 tlp639 tlp640 tlp641)))
|
|
(list)))
|
|
#f
|
|
(and (? number? tlp643) (? even? tlp644)))
|
|
(list
|
|
tlp630
|
|
tlp631
|
|
tlp632
|
|
tlp633
|
|
tlp634
|
|
tlp635
|
|
tlp636
|
|
tlp638
|
|
tlp639
|
|
tlp640
|
|
tlp641
|
|
tlp643)))))
|
|
(list
|
|
(mytest
|
|
(tlp645 `#&(4 ((1 these 7) 2 #\c . #\a) #t) `#\a `(7 #f #t) `#\c)
|
|
'(4 (1 these 7) 2 #t #\a (7 #f #t)))
|
|
(mytest
|
|
(tlp645
|
|
`#\c
|
|
`#4(are
|
|
#3(#\a (+ 1 2) #\d)
|
|
#4((#\c #\b #t . #\b) #f #\b ,inst-struct-name642)
|
|
())
|
|
`#f
|
|
`14)
|
|
'(#\c
|
|
(#\a (+ 1 2) #\d)
|
|
#\c
|
|
#\b
|
|
#t
|
|
#\b
|
|
#f
|
|
#\d
|
|
(+ 4 5)
|
|
(+ 4 5)
|
|
(+ 1 2)
|
|
14))))
|
|
(let ((tlp672
|
|
(match-lambda*
|
|
((list
|
|
(vector
|
|
#t
|
|
(list)
|
|
(list
|
|
tlp647
|
|
(or (box (list tlp648 tlp649 tlp650))
|
|
(box (list tlp648 tlp649 tlp650)))
|
|
(list tlp651 ...)
|
|
tlp652)
|
|
#f)
|
|
'these
|
|
tlp653
|
|
tlp654)
|
|
(list tlp647 tlp648 tlp649 tlp650 tlp651 tlp652 tlp653 tlp654))
|
|
((list
|
|
(list-rest
|
|
(list tlp655 __3)
|
|
(list tlp656 ___)
|
|
(struct
|
|
test-struct
|
|
((and (? test-struct? tlp662)
|
|
(app test-struct-a tlp657)
|
|
(app test-struct-b tlp658)
|
|
(app test-struct-c tlp659)
|
|
(app test-struct-d tlp660))
|
|
(list-rest tlp663 tlp664 tlp665 #\a)
|
|
(list-rest tlp666 tlp667 tlp668 #\b)
|
|
_))
|
|
'are)
|
|
(not (not 'symbols))
|
|
(and tlp670 tlp671)
|
|
_)
|
|
(list
|
|
tlp655
|
|
tlp656
|
|
tlp657
|
|
tlp658
|
|
tlp659
|
|
tlp660
|
|
tlp663
|
|
tlp664
|
|
tlp665
|
|
tlp666
|
|
tlp667
|
|
tlp668
|
|
tlp670)))))
|
|
(list
|
|
(mytest
|
|
(tlp672
|
|
`#4(#t () (#\c #&(#\a #t symbols) (symbols 2 #\a) (+ 4 5)) #f)
|
|
`these
|
|
`#\d
|
|
`3)
|
|
'(#\c #\a #t symbols (symbols 2 #\a) (+ 4 5) #\d 3))
|
|
(mytest
|
|
(tlp672
|
|
`((#\d symbols #t) (symbols #t #\c) ,inst-struct-name669 . are)
|
|
`symbols
|
|
`#\c
|
|
`#f)
|
|
'((#\d symbols #t)
|
|
(symbols #t #\c)
|
|
#\a
|
|
#\c
|
|
#f
|
|
#\c
|
|
#\b
|
|
#\b
|
|
#f
|
|
#\d
|
|
#t
|
|
(+ 1 2)
|
|
#\c))))))
|
|
(define (test-all1)
|
|
(list
|
|
(let-tests)
|
|
(define-tests)
|
|
(sing-match-tests)
|
|
(mult-match-tests)
|
|
(sing-match-lambda-tests)
|
|
(mult-match-lambda-tests)
|
|
(sing-match-lambda*-tests)
|
|
(mult-match-lambda*-tests)))
|
|
(test-all1)
|
|
|
|
;; hand made match tests
|
|
|
|
(mytest
|
|
(letrec ((z
|
|
(lambda (x)
|
|
(match
|
|
x
|
|
((list a b c)
|
|
(if (= a 10)
|
|
(list a b c)
|
|
(begin (cons a (z (list (add1 a) 2 3))))))))))
|
|
(z '(1 2 3)))
|
|
'(1 2 3 4 5 6 7 8 9 10 2 3))
|
|
(mytest
|
|
(letrec ((z
|
|
(match-lambda
|
|
((list a b c)
|
|
(if (= a 10) (list a b c) (cons a (z (list (add1 a) 2 3))))))))
|
|
(z '(1 2 3)))
|
|
'(1 2 3 4 5 6 7 8 9 10 2 3))
|
|
(mytest
|
|
(letrec ((z
|
|
(match-lambda*
|
|
((list a b c)
|
|
(if (= a 10) (list a b c) (cons a (z (add1 a) 2 3)))))))
|
|
(z 1 2 3))
|
|
'(1 2 3 4 5 6 7 8 9 10 2 3))
|
|
(mytest
|
|
(match-let
|
|
(((list a b c) '(1 2 3)) ((list d e f) '(4 5 6)))
|
|
(list a b c d e f))
|
|
'(1 2 3 4 5 6))
|
|
(mytest
|
|
(match-let
|
|
hey
|
|
(((list a b c) '(1 2 3)) ((list d e f) '(4 5 6)))
|
|
(list a b c d e f))
|
|
'(1 2 3 4 5 6))
|
|
(mytest
|
|
(match-let
|
|
hey
|
|
(((list a b c) '(1 2 3)) ((list d e f) '(4 5 6)))
|
|
(if (= a 10) '() (cons a (hey (list (add1 a) b c) '(d e f)))))
|
|
'(1 2 3 4 5 6 7 8 9))
|
|
(mytest
|
|
(let ((f 7))
|
|
(match-let
|
|
(((list a b c) (list 1 2 f)) ((list d e) '(5 6)))
|
|
(list a d c f)))
|
|
'(1 5 7 7))
|
|
(mytest
|
|
(match-let*
|
|
(((list a b c) '(1 2 3)) ((list d e f) '(4 5 6)))
|
|
(list a b c d e f))
|
|
'(1 2 3 4 5 6))
|
|
(mytest
|
|
(match-let*
|
|
(((list a b c) '(1 2 3)) ((list d e f) (list a b c)))
|
|
(list d e f))
|
|
'(1 2 3))
|
|
(mytest
|
|
(let ((f 7))
|
|
(match-let*
|
|
(((list a b c) (list 1 2 f)) ((list d e) '(5 6)))
|
|
(list a d c f)))
|
|
'(1 5 7 7))
|
|
(mytest
|
|
(match-letrec
|
|
(((list a b c) '(1 2 3)) ((list d e f) '(4 5 6)))
|
|
(list a b c d e f))
|
|
'(1 2 3 4 5 6))
|
|
(mytest
|
|
(match-letrec
|
|
(((list a b)
|
|
(list
|
|
(lambda (x) (if (zero? x) '() (cons x (a (sub1 x)))))
|
|
(lambda (x) (if (= x 10) '() (cons x (b (add1 x))))))))
|
|
(a 10))
|
|
'(10 9 8 7 6 5 4 3 2 1))
|
|
(mytest
|
|
(match-letrec
|
|
(((list a b)
|
|
(list
|
|
(lambda (x) (if (zero? x) '() (cons (b x) (a (sub1 x)))))
|
|
(lambda (x) (if (= x 10) '() (cons x (b (add1 x))))))))
|
|
(a 10))
|
|
'(()
|
|
(9)
|
|
(8 9)
|
|
(7 8 9)
|
|
(6 7 8 9)
|
|
(5 6 7 8 9)
|
|
(4 5 6 7 8 9)
|
|
(3 4 5 6 7 8 9)
|
|
(2 3 4 5 6 7 8 9)
|
|
(1 2 3 4 5 6 7 8 9)))
|
|
(mytest
|
|
(let ((f 7))
|
|
(match-letrec
|
|
(((list a b c) (list 1 2 f)) ((list d e) '(5 6)))
|
|
(list a d c f)))
|
|
'(1 5 7 7))
|
|
(mytest
|
|
(let ((f 7)) ((match-lambda ((list a b) (list a b f))) '(4 5)))
|
|
'(4 5 7))
|
|
(mytest (let ((f 7)) ((match-lambda* ((list a b) (list a b f))) 4 5)) '(4 5 7))
|
|
(mytest
|
|
(let ((f 7)) (match-define (list a b c) (list 1 2 f)) (list a b c f))
|
|
'(1 2 7 7))
|
|
(let ()
|
|
(match-define
|
|
(list a b)
|
|
(list
|
|
(lambda (x) (if (zero? x) '() (cons (b x) (a (sub1 x)))))
|
|
(lambda (x) (if (= x 10) '() (cons x (b (add1 x)))))))
|
|
(mytest
|
|
(a 10)
|
|
'(()
|
|
(9)
|
|
(8 9)
|
|
(7 8 9)
|
|
(6 7 8 9)
|
|
(5 6 7 8 9)
|
|
(4 5 6 7 8 9)
|
|
(3 4 5 6 7 8 9)
|
|
(2 3 4 5 6 7 8 9)
|
|
(1 2 3 4 5 6 7 8 9))))
|
|
(mytest (match '((1) (2) (3)) ((list (list _) ...) 'hey)) 'hey)
|
|
(mytest
|
|
(match
|
|
'(1 2 3)
|
|
((list a b c) (=> fail) (if (= a 1) (fail) 'bad))
|
|
((list a b c) (=> fail) (if (= a 1) (fail) 'bad))
|
|
((list a b c) (=> fail) (if (= a 1) (fail) 'bad))
|
|
((list a b c) (=> fail) (if (= a 1) (fail) 'bad))
|
|
((list a b c) (=> fail) (if (= a 1) (fail) 'bad))
|
|
((list a b c) (=> fail) (if (= a 1) (fail) 'bad))
|
|
((list a b c) (list a b c)))
|
|
'(1 2 3))
|
|
(mytest
|
|
(let ((x '(1 2 (3 4))))
|
|
(match x ((list _ _ (list (set! set-it) _)) (set-it 17)))
|
|
x)
|
|
'(1 2 (17 4)))
|
|
(mytest
|
|
(let ((x '(1 2 (3 4))))
|
|
(match x ((list _ _ (list _ (set! set-it))) (set-it 17)))
|
|
x)
|
|
'(1 2 (3 17)))
|
|
(mytest
|
|
(let ((x '(1 2 (3 4))))
|
|
(match x ((list (set! set-it) _ (list _ _)) (set-it 17)))
|
|
x)
|
|
'(17 2 (3 4)))
|
|
(mytest
|
|
(let ((x '(1 2 (3 4))))
|
|
(match x ((list _ (set! set-it) (list _ _)) (set-it 17)))
|
|
x)
|
|
'(1 17 (3 4)))
|
|
(mytest
|
|
(let ((x '(1 2 (3 . 4) . 5)))
|
|
(match x ((list-rest (set! set-it) _ (list-rest _ _) _) (set-it 17)))
|
|
x)
|
|
'(17 2 (3 . 4) . 5))
|
|
(mytest
|
|
(let ((x '(1 2 (3 . 4) . 5)))
|
|
(match x ((list-rest _ (set! set-it) (list-rest _ _) _) (set-it 17)))
|
|
x)
|
|
'(1 17 (3 . 4) . 5))
|
|
(mytest
|
|
(let ((x '(1 2 (3 . 4) . 5)))
|
|
(match x ((list-rest _ _ (list-rest (set! set-it) _) _) (set-it 17)))
|
|
x)
|
|
'(1 2 (17 . 4) . 5))
|
|
(mytest
|
|
(let ((x '(1 2 (3 . 4) . 5)))
|
|
(match x ((list-rest _ _ (list-rest _ (set! set-it)) _) (set-it 17)))
|
|
x)
|
|
'(1 2 (3 . 17) . 5))
|
|
(mytest
|
|
(let ((x '(1 2 (3 . 4) . 5)))
|
|
(match x ((list-rest _ _ (list-rest _ _) (set! set-it)) (set-it 17)))
|
|
x)
|
|
'(1 2 (3 . 4) . 17))
|
|
(mytest
|
|
(let ((x #2(1 2))) (match x ((vector _ (set! set-it)) (set-it 17))) x)
|
|
#2(1 17))
|
|
(mytest
|
|
(let ((x #2(1 2))) (match x ((vector (set! set-it) _) (set-it 17))) x)
|
|
#2(17 2))
|
|
(mytest (let ((x #&1)) (match x ((box (set! set-it)) (set-it 17))) x) #&17)
|
|
(mytest
|
|
(let ((x #&(1 2))) (match x ((box (list _ (set! set-it))) (set-it 17))) x)
|
|
#&(1 17))
|
|
(mytest
|
|
(let ((x #(1 2)))
|
|
(match x ((box (vector _ (set! set-it))) (set-it 17)))
|
|
x)
|
|
#(1 17))
|
|
(mytest
|
|
(let* ((x '(1 2 (3 4)))
|
|
(f (match x ((list _ _ (list (get! get-it) _)) get-it))))
|
|
(match x ((list _ _ (list (set! set-it) _)) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x '(1 2 (3 4)))
|
|
(f (match x ((list _ _ (list _ (get! get-it))) get-it))))
|
|
(match x ((list _ _ (list _ (set! set-it))) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x '(1 2 (3 4)))
|
|
(f (match x ((list (get! get-it) _ (list _ _)) get-it))))
|
|
(match x ((list (set! set-it) _ (list _ _)) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x '(1 2 (3 4)))
|
|
(f (match x ((list _ (get! get-it) (list _ _)) get-it))))
|
|
(match x ((list _ (set! set-it) (list _ _)) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x '(1 2 (3 . 4) . 5))
|
|
(f (match x ((list-rest (get! get-it) _ (list-rest _ _) _) get-it))))
|
|
(match x ((list-rest (set! set-it) _ (list-rest _ _) _) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x '(1 2 (3 . 4) . 5))
|
|
(f (match x ((list-rest _ (get! get-it) (list-rest _ _) _) get-it))))
|
|
(match x ((list-rest _ (set! set-it) (list-rest _ _) _) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x '(1 2 (3 . 4) . 5))
|
|
(f (match x ((list-rest _ _ (list-rest (get! get-it) _) _) get-it))))
|
|
(match x ((list-rest _ _ (list-rest (set! set-it) _) _) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x '(1 2 (3 . 4) . 5))
|
|
(f (match x ((list-rest _ _ (list-rest _ (get! get-it)) _) get-it))))
|
|
(match x ((list-rest _ _ (list-rest _ (set! set-it)) _) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x '(1 2 (3 . 4) . 5))
|
|
(f (match x ((list-rest _ _ (list-rest _ _) (get! get-it)) get-it))))
|
|
(match x ((list-rest _ _ (list-rest _ _) (set! set-it)) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x #2(1 2)) (f (match x ((vector _ (get! get-it)) get-it))))
|
|
(match x ((vector _ (set! set-it)) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x #2(1 2)) (f (match x ((vector (get! get-it) _) get-it))))
|
|
(match x ((vector (set! set-it) _) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x #&1) (f (match x ((box (get! get-it)) get-it))))
|
|
(match x ((box (set! set-it)) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x #&(1 2)) (f (match x ((box (list _ (get! get-it))) get-it))))
|
|
(match x ((box (list _ (set! set-it))) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(let* ((x #(1 2)) (f (match x ((box (vector _ (get! get-it))) get-it))))
|
|
(match x ((box (vector _ (set! set-it))) (set-it 17)))
|
|
(f))
|
|
17)
|
|
(mytest
|
|
(match
|
|
#2(#3(#3(1 2 3) #3(1 2 3) #3(2 3 4)) #3(#3(1 2 3) #3(1 2 3) #3(2 3 4)))
|
|
((vector (vector (vector a ...) ...) ...) a))
|
|
'(((1 2 3) (1 2 3) (2 3 4)) ((1 2 3) (1 2 3) (2 3 4))))
|
|
(mytest
|
|
(match
|
|
'(((1 2 3) (1 2 3) (2 3 4)) ((1 2 3) (1 2 3) (2 3 4)))
|
|
((list (list (list a ...) ...) ...) a))
|
|
'(((1 2 3) (1 2 3) (2 3 4)) ((1 2 3) (1 2 3) (2 3 4))))
|
|
(mytest
|
|
(match
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))))
|
|
((list (list (list (list (list (list a ...) ...) ...) ...) ...) ...) a))
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))))
|
|
(mytest
|
|
(match
|
|
#2(#2(#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))
|
|
#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))))
|
|
#2(#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))
|
|
#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))))
|
|
((vector
|
|
(vector (vector (vector (vector (vector a ...) ...) ...) ...) ...)
|
|
...)
|
|
a))
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))))
|
|
(mytest
|
|
(match
|
|
'(#2((#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))
|
|
(#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))))
|
|
#2((#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))
|
|
(#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))))
|
|
((list (vector (list (vector (list (vector a ...) ...) ...) ...) ...) ...)
|
|
a))
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))))
|
|
(mytest
|
|
(match
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))))
|
|
((list (list (list (list (list (list a ..2) ..2) ..2) ..2) ..2) ..2) a))
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))))
|
|
(mytest
|
|
(match
|
|
#2(#2(#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))
|
|
#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))))
|
|
#2(#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))
|
|
#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))))
|
|
((vector
|
|
(vector (vector (vector (vector (vector a ..2) ..2) ..2) ..2) ..2)
|
|
..2)
|
|
a))
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))))
|
|
(mytest
|
|
(match
|
|
'(#2((#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))
|
|
(#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))))
|
|
#2((#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))
|
|
(#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))))
|
|
((list (vector (list (vector (list (vector a ..2) ..2) ..2) ..2) ..2) ..2)
|
|
a))
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))))
|
|
(mytest
|
|
(match
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))))
|
|
((list (list (list (list (list (list _ ...) ...) ...) ...) ...) ...) #t)
|
|
(_ #f))
|
|
#t)
|
|
(mytest
|
|
(match
|
|
#2(#2(#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))
|
|
#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))))
|
|
#2(#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))
|
|
#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))))
|
|
((vector
|
|
(vector (vector (vector (vector (vector _ ...) ...) ...) ...) ...)
|
|
...)
|
|
#t)
|
|
(_ #f))
|
|
#t)
|
|
(mytest
|
|
(match
|
|
'(#2((#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))
|
|
(#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))))
|
|
#2((#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))
|
|
(#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))))
|
|
((list (vector (list (vector (list (vector _ ...) ...) ...) ...) ...) ...)
|
|
#t)
|
|
(_ #f))
|
|
#t)
|
|
(mytest
|
|
(match
|
|
'((((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8)))))
|
|
(((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))
|
|
((((1 2) (3 4)) ((5 6) (7 8))) (((1 2) (3 4)) ((5 6) (7 8))))))
|
|
((list (list (list (list (list (list a b) ...) ...) ...) ...) ...)
|
|
(list a b)))
|
|
'((((((1 3) (5 7)) ((1 3) (5 7))) (((1 3) (5 7)) ((1 3) (5 7))))
|
|
((((1 3) (5 7)) ((1 3) (5 7))) (((1 3) (5 7)) ((1 3) (5 7)))))
|
|
(((((2 4) (6 8)) ((2 4) (6 8))) (((2 4) (6 8)) ((2 4) (6 8))))
|
|
((((2 4) (6 8)) ((2 4) (6 8))) (((2 4) (6 8)) ((2 4) (6 8)))))))
|
|
(mytest
|
|
(match
|
|
#2(#2(#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))
|
|
#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))))
|
|
#2(#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))
|
|
#2(#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8)))
|
|
#2(#2(#2(1 2) #2(3 4)) #2(#2(5 6) #2(7 8))))))
|
|
((vector
|
|
(vector (vector (vector (vector (vector a b) ...) ...) ...) ...)
|
|
...)
|
|
(list a b)))
|
|
'((((((1 3) (5 7)) ((1 3) (5 7))) (((1 3) (5 7)) ((1 3) (5 7))))
|
|
((((1 3) (5 7)) ((1 3) (5 7))) (((1 3) (5 7)) ((1 3) (5 7)))))
|
|
(((((2 4) (6 8)) ((2 4) (6 8))) (((2 4) (6 8)) ((2 4) (6 8))))
|
|
((((2 4) (6 8)) ((2 4) (6 8))) (((2 4) (6 8)) ((2 4) (6 8)))))))
|
|
(mytest
|
|
(match
|
|
'(#2((#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))
|
|
(#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))))
|
|
#2((#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))
|
|
(#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8)))
|
|
#2((#2(1 2) #2(3 4)) (#2(5 6) #2(7 8))))))
|
|
((list (vector (list (vector (list (vector a b) ...) ...) ...) ...) ...)
|
|
(list a b)))
|
|
'((((((1 3) (5 7)) ((1 3) (5 7))) (((1 3) (5 7)) ((1 3) (5 7))))
|
|
((((1 3) (5 7)) ((1 3) (5 7))) (((1 3) (5 7)) ((1 3) (5 7)))))
|
|
(((((2 4) (6 8)) ((2 4) (6 8))) (((2 4) (6 8)) ((2 4) (6 8))))
|
|
((((2 4) (6 8)) ((2 4) (6 8))) (((2 4) (6 8)) ((2 4) (6 8)))))))
|
|
(mytest
|
|
(match
|
|
'((1 1 2 2) (1 1 2 2) 5 5 5)
|
|
((list (list 1 ... a ...) ... 7 ...) #f)
|
|
((list (list 1 ... a ...) ... 6 ...) #f)
|
|
((list (list 1 ... a ...) ... 5 ...) a))
|
|
'((2 2) (2 2)))
|
|
(mytest (match '(1 1 1 1 1 2 2 2 2) ((list 1 ... 2 2 2 2) #t)) #t)
|
|
(mytest (match '(1 1 1 1 1 2 2 2 2) ((list 1 ... 2 ...) #t)) #t)
|
|
(mytest
|
|
(match '(1 1 1 1 1 2 2 2 2) ((list (and (not 2) a) ... 2 ...) a))
|
|
'(1 1 1 1 1))
|
|
(mytest
|
|
(match '(1 1 1 1 1 2 2 2 2) ((list a ... 2 ...) a))
|
|
'(1 1 1 1 1 2 2 2 2))
|
|
(mytest (match '(1 1 1 1 1 2 2 2 2) ((list _ ... 2 ...) #t)) #t)
|
|
(mytest
|
|
(match
|
|
'(pattern matching in scheme is very cool)
|
|
((list (and (not 'in) a) ... (and (not 'is) b) ... c ...) (list a c b)))
|
|
'((pattern matching) (is very cool) (in scheme)))
|
|
(mytest
|
|
(match '((1 1 2 2) (1 1 2 2) 5 5 5) ((list (list 1 ... 2 ...) ... 5 ...) #t))
|
|
#t)
|
|
(mytest
|
|
(match
|
|
#13(1 3 1 9 8 4 2 2 4 7 a b c)
|
|
((vector (and (? odd?) a) ... 8 (and (? even?) b) ... 7 r ...)
|
|
(list a b r)))
|
|
'((1 3 1 9) (4 2 2 4) (a b c)))
|
|
(mytest
|
|
(match
|
|
#5(#4(1 1 2) #4(1 1 2) 5)
|
|
((vector (vector 1 ... 2 ...) ... 5 ...) #t))
|
|
#t)
|
|
(mytest
|
|
(match
|
|
#5(#4(1 1 2) #4(1 1 2) 5)
|
|
((vector (vector 1 ... a ...) ... 7 ...) #f)
|
|
((vector (vector 1 ... a ...) ... 6 ...) #f)
|
|
((vector (vector 1 ... a ...) ... 5 ...) a))
|
|
'((2 2) (2 2)))
|
|
(mytest
|
|
(match #5(#2(1 2) #2(1 2) #2(1 2) 5 6) ((vector (vector _ _) ..3 a ...) a))
|
|
'(5 6))
|
|
(mytest
|
|
(match #5(1 2 3 4 5) ((vector a b (and c (not 5)) ... d) (list a b c d)))
|
|
'(1 2 (3 4) 5))
|
|
|
|
(mytest (match '(1 2 3 4) ((list-no-order a b 1 c) (list a b c))) '(2 3 4))
|
|
|
|
;; ddk-patterns for list-rest
|
|
(mytest (match '(1 1 1 1 . 2)
|
|
((list-rest 1 ... a) a))
|
|
2)
|
|
|
|
(mytest (match '(1 1 1 1 . 2)
|
|
((list-rest (and 1 b) ... a) (list b a)))
|
|
'((1 1 1 1) 2))
|
|
|
|
(mytest (match '(1 1 1 1 2 . 4)
|
|
((list-rest (and 1 b) ... a (and c 4)) (list b a c)))
|
|
'((1 1 1 1) 2 4))
|
|
|
|
;the new var pattern
|
|
; this allows one to use
|
|
; var, $, =, and, or, not, ?, set!, or get!
|
|
; as pattern variables
|
|
(mytest (match '(1 2 3)
|
|
((list (var _) b c) (list _ b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list (var ..3) b c) (list ..3 b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list (var quasiquote) b c) (list quasiquote b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list (var quote) b c) (list quote b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list (var unquote) b c) (list unquote b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list (var unquote-splicing) b c) (list unquote-splicing b c)))
|
|
'(1 2 3))
|
|
|
|
;the new var pattern
|
|
; this allows one to use
|
|
; var, $, =, and, or, not, ?, set!, or get!
|
|
; as pattern variables
|
|
(mytest (match '(1 2 3)
|
|
((list $ b c) (list $ b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list var b c) (list var b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list = b c) (list = b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list and b c) (list and b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list or b c) (list or b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list not b c) (list not b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list ? b c) (list ? b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list set! b c) (list set! b c)))
|
|
'(1 2 3))
|
|
|
|
(mytest (match '(1 2 3)
|
|
((list get! b c) (list get! b c)))
|
|
'(1 2 3))
|
|
|
|
;; structures for the next tests
|
|
|
|
(define inst-struct-name3134 (make-test-struct `6 `#t `(+ 4 (+ 1 1)) `#\a))
|
|
(define inst-struct-name3144 (make-test-struct `#\a `3 `(+ 4 5) `7))
|
|
(define inst-struct-name3157
|
|
(make-test-struct
|
|
`#&((#f (+ 1 2) #\d #\b) (#\d 1 symbols) ,inst-struct-name3134)
|
|
`((5 7 symbols #t)
|
|
,inst-struct-name3144
|
|
#((+ 4 (+ 1 1)) #f #\a #\d)
|
|
.
|
|
#\d)
|
|
`(#\a (+ 4 (+ 1 1)) these)
|
|
`(#\b 3 4 #&((+ 4 (+ 1 1)) #f 2))))
|
|
(define inst-struct-name3197
|
|
(make-test-struct `(8 #\b (+ 1 2)) `(+ 1 2) `#\a `((+ 1 2) #f 5)))
|
|
(define inst-struct-name3200
|
|
(make-test-struct
|
|
`#(#\b symbols (+ 1 2))
|
|
`symbols
|
|
`,inst-struct-name3197
|
|
`5))
|
|
(define inst-struct-name3228 (make-test-struct `these `3 `#\d `#t))
|
|
(define inst-struct-name3234 (make-test-struct `(+ 4 5) `#\a `#\a `#f))
|
|
(define inst-struct-name3239
|
|
(make-test-struct `() `#(#\d #\b #\b) `#\c `#\b))
|
|
(define inst-struct-name3252
|
|
(make-test-struct
|
|
`(#t #\c #\c . are)
|
|
`#((+ 1 2) (+ 4 5) #\b 9)
|
|
`16
|
|
`(+ 4 5)))
|
|
(define inst-struct-name3287
|
|
(make-test-struct `#\d `#((+ 4 5) #t (+ 4 5) #t) `#t `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name3297
|
|
(make-test-struct `these `#f `#(are symbols #\c) `#(these symbols #t #\d)))
|
|
(define inst-struct-name3307 (make-test-struct `#t `(+ 4 (+ 1 1)) `#\d `#f))
|
|
(define inst-struct-name3312
|
|
(make-test-struct
|
|
`#&(symbols #\d #\c)
|
|
`,inst-struct-name3307
|
|
`(these are (+ 1 2) (+ 4 5))
|
|
`#f))
|
|
(define inst-struct-name3322
|
|
(make-test-struct
|
|
`(#t 6 #\c)
|
|
`(#t #\d 2 . #\a)
|
|
`#(#f 6 #\b)
|
|
`#&(#f 7 symbols)))
|
|
(define inst-struct-name3355 (make-test-struct `(+ 1 2) `these `#t `#t))
|
|
(define inst-struct-name3367 (make-test-struct `#\d `#\a `6 `(+ 1 2)))
|
|
(define inst-struct-name3372 (make-test-struct `symbols `#\a `3 `#\c))
|
|
(define inst-struct-name3396 (make-test-struct `0 `#\d `#\a `#\b))
|
|
(define inst-struct-name3419 (make-test-struct `#\c `#\c `symbols `9))
|
|
(define inst-struct-name3444
|
|
(make-test-struct
|
|
`(#\c (+ 4 (+ 1 1)) (+ 4 5))
|
|
`()
|
|
`((6 #\a 2) 0 #(these #\c these 1) . 5)
|
|
`#(#f #\a #\d)))
|
|
(define inst-struct-name3455
|
|
(make-test-struct
|
|
`()
|
|
`(#\d #t symbols . #\d)
|
|
`#&(#\d (+ 4 (+ 1 1)) these)
|
|
`2))
|
|
(define inst-struct-name3474
|
|
(make-test-struct `(#t #\c #f . #\d) `#\a `() `(#t #\a #\a)))
|
|
(define inst-struct-name3482 (make-test-struct `symbols `#\b `#f `#f))
|
|
(define inst-struct-name3493
|
|
(make-test-struct
|
|
`16
|
|
`(,inst-struct-name3482 #(#f #\c (+ 4 5) #f) #&((+ 4 5) #\d are) (+ 4 5))
|
|
`#(#t #f 4)
|
|
`#\d))
|
|
(define inst-struct-name3505 (make-test-struct `4 `(+ 4 (+ 1 1)) `#f `these))
|
|
(define inst-struct-name3512
|
|
(make-test-struct
|
|
`#&(symbols #f 2)
|
|
`()
|
|
`#t
|
|
`(are (+ 4 (+ 1 1)) (+ 4 (+ 1 1)))))
|
|
(define inst-struct-name3518 (make-test-struct `8 `#\b `#\c `symbols))
|
|
(define inst-struct-name3527 (make-test-struct `#\a `#t `4 `#t))
|
|
(define inst-struct-name3550
|
|
(make-test-struct `(+ 4 (+ 1 1)) `(#t 8 symbols) `(#\a #\c #t) `0))
|
|
(define inst-struct-name3570 (make-test-struct `#\b `#\c `#\d `#\c))
|
|
(define inst-struct-name3577 (make-test-struct `#\b `(+ 1 2) `#\b `#\b))
|
|
(define inst-struct-name3578
|
|
(make-test-struct `,inst-struct-name3570 `16 `,inst-struct-name3577 `9))
|
|
(define inst-struct-name3595
|
|
(make-test-struct
|
|
`(0 these are)
|
|
`(#\d #f (+ 4 (+ 1 1)) . #\c)
|
|
`#(#\b #\a these symbols)
|
|
`#\b))
|
|
(define inst-struct-name3600 (make-test-struct `#\a `0 `2 `2))
|
|
(define inst-struct-name3605 (make-test-struct `are `1 `3 `#\d))
|
|
(define inst-struct-name3625
|
|
(make-test-struct
|
|
`()
|
|
`#\a
|
|
`#(#\a #\c (+ 1 2) #t)
|
|
`#((+ 4 (+ 1 1)) #\b 5 these)))
|
|
(define inst-struct-name3633 (make-test-struct `(+ 4 (+ 1 1)) `are `#f `#\c))
|
|
(define inst-struct-name3639
|
|
(make-test-struct `#\a `,inst-struct-name3633 `#&(are symbols 4) `#\c))
|
|
(define inst-struct-name3677
|
|
(make-test-struct `#(#\b are #\b) `#\a `#\c `(#\b #\c #\d . #\d)))
|
|
(define inst-struct-name3701
|
|
(make-test-struct `#\b `9 `#&(#\c (#f #\d (+ 1 2)) are) `#\d))
|
|
(define inst-struct-name3712
|
|
(make-test-struct `#\d `#\d `(+ 4 (+ 1 1)) `are))
|
|
(define inst-struct-name3744
|
|
(make-test-struct `symbols `(+ 1 2) `symbols `#\b))
|
|
(define inst-struct-name3752 (make-test-struct `#\b `#t `(+ 4 5) `#\b))
|
|
(define inst-struct-name3753
|
|
(make-test-struct
|
|
`,inst-struct-name3744
|
|
`#(#\c #\d #\d)
|
|
`#\b
|
|
`,inst-struct-name3752))
|
|
(define inst-struct-name3755
|
|
(make-test-struct `(these 0 3) `(+ 4 5) `2 `,inst-struct-name3753))
|
|
(define inst-struct-name3762 (make-test-struct `these `(+ 1 2) `2 `#\d))
|
|
(define inst-struct-name3776 (make-test-struct `#\b `#\b `symbols `these))
|
|
(define inst-struct-name3777
|
|
(make-test-struct
|
|
`#&(symbols (+ 4 (+ 1 1)) (+ 1 2))
|
|
`#(#\c 6 #\c #t)
|
|
`#\b
|
|
`,inst-struct-name3776))
|
|
(define inst-struct-name3805
|
|
(make-test-struct `#\d `#&((+ 1 2) #\d 1) `(+ 4 5) `#\b))
|
|
(define inst-struct-name3817 (make-test-struct `1 `(+ 1 2) `#\d `(+ 1 2)))
|
|
(define inst-struct-name3820
|
|
(make-test-struct
|
|
`#\d
|
|
`(2 (+ 4 (+ 1 1)) symbols)
|
|
`,inst-struct-name3817
|
|
`#((+ 1 2) 8 (+ 4 5))))
|
|
(define inst-struct-name3822
|
|
(make-test-struct
|
|
`,inst-struct-name3805
|
|
`#&(#&(#f (+ 4 (+ 1 1)) #\d) #\c (#t #\c #f))
|
|
`(+ 4 5)
|
|
`,inst-struct-name3820))
|
|
(define inst-struct-name3851 (make-test-struct `#f `(+ 1 2) `#\a `#f))
|
|
(define inst-struct-name3854
|
|
(make-test-struct `#\b `#\b `,inst-struct-name3851 `18))
|
|
(define inst-struct-name3856
|
|
(make-test-struct
|
|
`#&(#t #\a symbols)
|
|
`(((+ 4 (+ 1 1)) (+ 4 5) #\b) #t 12 #(these #\c #f))
|
|
`(#(#\d these #\d) #t 7 #f)
|
|
`,inst-struct-name3854))
|
|
(define inst-struct-name3890
|
|
(make-test-struct `#f `(#t #f are symbols) `#\d `#t))
|
|
(define inst-struct-name3900 (make-test-struct `(+ 4 (+ 1 1)) `0 `#\d `0))
|
|
(define inst-struct-name3902
|
|
(make-test-struct
|
|
`,inst-struct-name3890
|
|
`(+ 4 5)
|
|
`()
|
|
`#((#\a 7 #\b (+ 1 2)) ,inst-struct-name3900 #\b ())))
|
|
(define inst-struct-name3928
|
|
(make-test-struct `8 `#\c `#\c `#(8 #\d #f #\a)))
|
|
(define inst-struct-name3939 (make-test-struct `6 `#\d `(+ 4 (+ 1 1)) `7))
|
|
(define inst-struct-name3944
|
|
(make-test-struct
|
|
`#\d
|
|
`,inst-struct-name3928
|
|
`(,inst-struct-name3939 () #&(#\b #f #\b) #t)
|
|
`(4 (+ 1 2) 3)))
|
|
(define inst-struct-name3952
|
|
(make-test-struct `() `7 `(+ 1 2) `(#\d #\d #\c)))
|
|
(define inst-struct-name3957
|
|
(make-test-struct `#t `(#\a #\b symbols) `#\d `10))
|
|
(define inst-struct-name3962 (make-test-struct `4 `(+ 4 (+ 1 1)) `#\c `6))
|
|
(define inst-struct-name3973 (make-test-struct `#t `1 `2 `#t))
|
|
(define inst-struct-name3974
|
|
(make-test-struct `(+ 4 (+ 1 1)) `9 `#f `,inst-struct-name3973))
|
|
(define inst-struct-name3986 (make-test-struct `these `#\d `#f `#t))
|
|
(define inst-struct-name3998 (make-test-struct `(+ 4 5) `#f `0 `#\a))
|
|
(define inst-struct-name4008 (make-test-struct `#\c `#t `#\c `#t))
|
|
(define inst-struct-name4019
|
|
(make-test-struct
|
|
`((+ 4 5) #\b these . 1)
|
|
`,inst-struct-name4008
|
|
`(2 #f #t #\d)
|
|
`#(9 #\b 2)))
|
|
(define inst-struct-name4024
|
|
(make-test-struct `#\a `(+ 4 (+ 1 1)) `(+ 4 (+ 1 1)) `#t))
|
|
(define inst-struct-name4026
|
|
(make-test-struct `(+ 1 2) `,inst-struct-name4024 `() `#\d))
|
|
(define inst-struct-name4028
|
|
(make-test-struct
|
|
`(#\a 8 #f)
|
|
`,inst-struct-name4019
|
|
`()
|
|
`,inst-struct-name4026))
|
|
(define inst-struct-name4042
|
|
(make-test-struct
|
|
`#\b
|
|
`(5 (+ 4 5) (+ 4 (+ 1 1)) #\d)
|
|
`(are #\b these . 2)
|
|
`#\b))
|
|
(define inst-struct-name4060 (make-test-struct `0 `symbols `#f `#\a))
|
|
(define inst-struct-name4063
|
|
(make-test-struct `8 `#&(5 #\c #f) `,inst-struct-name4060 `10))
|
|
(define inst-struct-name4064
|
|
(make-test-struct `4 `#f `0 `,inst-struct-name4063))
|
|
(define inst-struct-name4088
|
|
(make-test-struct
|
|
`#\a
|
|
`(#\d symbols these)
|
|
`(#\a are 2 #(#\b 0 symbols #\d))
|
|
`#f))
|
|
(define inst-struct-name4109 (make-test-struct `4 `symbols `(+ 4 5) `#\b))
|
|
(define inst-struct-name4137
|
|
(make-test-struct `(+ 4 5) `(+ 4 5) `are `these))
|
|
(define inst-struct-name4145
|
|
(make-test-struct
|
|
`,inst-struct-name4137
|
|
`#\d
|
|
`#(2 #\c (+ 1 2) #\c)
|
|
`(#\c 6 9 . 7)))
|
|
(define inst-struct-name4146
|
|
(make-test-struct `these `(+ 4 (+ 1 1)) `(+ 1 2) `,inst-struct-name4145))
|
|
(define inst-struct-name4160 (make-test-struct `4 `#\d `2 `#\a))
|
|
(define inst-struct-name4174
|
|
(make-test-struct
|
|
`these
|
|
`#((#t (+ 1 2) #\c are) #(#\d (+ 4 5) #\a #\d) ,inst-struct-name4160 #t)
|
|
`(#\b #\b 9)
|
|
`#(#\c #(#\c #\c #\c #f) these ())))
|
|
(define inst-struct-name4181 (make-test-struct `#\c `#(#f #\c #t) `#f `#t))
|
|
(define inst-struct-name4194 (make-test-struct `#\a `#t `6 `symbols))
|
|
(define inst-struct-name4208
|
|
(make-test-struct
|
|
`(#f 7 #t)
|
|
`,inst-struct-name4181
|
|
`#&(#(#f symbols (+ 1 2) #\a)
|
|
((+ 1 2) symbols #\b #\c)
|
|
,inst-struct-name4194)
|
|
`#t))
|
|
(define inst-struct-name4214
|
|
(make-test-struct `(+ 4 5) `symbols `#\d `these))
|
|
(define inst-struct-name4239
|
|
(make-test-struct `(#\c 6 (+ 4 5) . #f) `() `14 `(#\a (+ 4 5) #\a . #\c)))
|
|
(define inst-struct-name4241
|
|
(make-test-struct
|
|
`()
|
|
`#(these (#\b #\a these #t) (#\a #\c are) (these 4 #\d))
|
|
`,inst-struct-name4239
|
|
`()))
|
|
(define inst-struct-name4252 (make-test-struct `#t `5 `symbols `(+ 1 2)))
|
|
(define inst-struct-name4260
|
|
(make-test-struct `() `symbols `#t `(#\d (+ 4 5) #\b 6)))
|
|
(define inst-struct-name4266
|
|
(make-test-struct `symbols `symbols `(+ 4 (+ 1 1)) `(+ 1 2)))
|
|
(define inst-struct-name4280 (make-test-struct `#\c `8 `#\d `#t))
|
|
(define inst-struct-name4287
|
|
(make-test-struct `,inst-struct-name4280 `4 `#\b `(#\b #t #f . #t)))
|
|
(define inst-struct-name4293
|
|
(make-test-struct `#\c `#\a `symbols `(#\d #t (+ 4 (+ 1 1)))))
|
|
(define inst-struct-name4314
|
|
(make-test-struct
|
|
`,inst-struct-name4293
|
|
`8
|
|
`(#(#\c #\a #t 5) #&((+ 1 2) 6 these) (+ 1 2) (#\c #\c #t))
|
|
`#&(#(#\c (+ 4 (+ 1 1)) these #t) these (#\a symbols (+ 1 2)))))
|
|
(define inst-struct-name4325
|
|
(make-test-struct
|
|
`#(symbols are (are (+ 4 5) (+ 4 (+ 1 1)) . #\b) 3)
|
|
`(#\a these (+ 4 5))
|
|
`()
|
|
`(#\b #(#\a these #\b) 12 . #t)))
|
|
(define inst-struct-name4343
|
|
(make-test-struct `(+ 4 5) `#\a `#t `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name4348 (make-test-struct `(+ 1 2) `#\a `9 `#\a))
|
|
(define inst-struct-name4351
|
|
(make-test-struct
|
|
`#f
|
|
`#\c
|
|
`(+ 1 2)
|
|
`(,inst-struct-name4343
|
|
,inst-struct-name4348
|
|
#(#\a (+ 4 5) (+ 4 5))
|
|
#\c)))
|
|
(define inst-struct-name4363 (make-test-struct `(+ 4 5) `are `#f `#t))
|
|
(define inst-struct-name4369
|
|
(make-test-struct
|
|
`#\b
|
|
`are
|
|
`,inst-struct-name4363
|
|
`((+ 4 (+ 1 1)) (+ 1 2) these #f)))
|
|
(define inst-struct-name4376 (make-test-struct `#f `#\d `#t `are))
|
|
(define inst-struct-name4391 (make-test-struct `#t `#\d `6 `#\d))
|
|
(define inst-struct-name4405 (make-test-struct `(+ 4 5) `symbols `#f `#\b))
|
|
(define inst-struct-name4409
|
|
(make-test-struct
|
|
`#(6 (+ 1 2) #\a)
|
|
`,inst-struct-name4405
|
|
`((+ 1 2) 8 8)
|
|
`((+ 1 2) #\b #f)))
|
|
(define inst-struct-name4429
|
|
(make-test-struct
|
|
`(#\d (+ 4 5) 1 . #\a)
|
|
`#\a
|
|
`#(are these are are)
|
|
`(are #f #\a)))
|
|
(define inst-struct-name4430
|
|
(make-test-struct
|
|
`,inst-struct-name4409
|
|
`#&(5 #&(symbols #\b #\a) (4 6 #\a #\c))
|
|
`,inst-struct-name4429
|
|
`()))
|
|
(define inst-struct-name4444
|
|
(make-test-struct
|
|
`(#\b (+ 1 2) are . 9)
|
|
`(+ 1 2)
|
|
`(+ 1 2)
|
|
`(#\c (+ 1 2) #\d)))
|
|
(define inst-struct-name4460
|
|
(make-test-struct
|
|
`#&(#t (+ 4 5) #\c)
|
|
`(1 #\c 1)
|
|
`(#f (+ 4 5) #\a . symbols)
|
|
`(+ 4 5)))
|
|
(define inst-struct-name4470
|
|
(make-test-struct
|
|
`,inst-struct-name4460
|
|
`10
|
|
`#t
|
|
`(() #\d (#f #\d #\c are) . #\b)))
|
|
(define inst-struct-name4501 (make-test-struct `#\b `8 `are `#\a))
|
|
(define inst-struct-name4516
|
|
(make-test-struct
|
|
`#&(,inst-struct-name4501 () #(#\b #\b #t #t))
|
|
`((#\b #\c #t) 0 ((+ 4 5) #t these) . these)
|
|
`(#\a #\b 0)
|
|
`()))
|
|
(define inst-struct-name4532 (make-test-struct `(+ 4 (+ 1 1)) `#\c `#f `#\c))
|
|
(define inst-struct-name4539
|
|
(make-test-struct
|
|
`,inst-struct-name4532
|
|
`(#f 9 symbols)
|
|
`#\d
|
|
`#(are #f are)))
|
|
(define inst-struct-name4554 (make-test-struct `#f `#\b `(+ 4 5) `these))
|
|
(define inst-struct-name4555
|
|
(make-test-struct
|
|
`#\b
|
|
`#(#\c #\b #f (+ 4 5))
|
|
`#(#f 5 #\a)
|
|
`,inst-struct-name4554))
|
|
(define inst-struct-name4578
|
|
(make-test-struct
|
|
`5
|
|
`#&(#\c #((+ 4 (+ 1 1)) 9 these (+ 1 2)) are)
|
|
`#((#\a 1 #t #\c) #f (#f #\c #\a) (+ 4 (+ 1 1)))
|
|
`#(#\a #t #t)))
|
|
(define inst-struct-name4593 (make-test-struct `#t `(+ 4 5) `#\d `#t))
|
|
(define inst-struct-name4594
|
|
(make-test-struct
|
|
`these
|
|
`#(these #\d symbols #\c)
|
|
`#((+ 4 5) 0 #f #t)
|
|
`,inst-struct-name4593))
|
|
(define inst-struct-name4629 (make-test-struct `(+ 4 5) `2 `are `#\d))
|
|
(define inst-struct-name4635 (make-test-struct `#f `#\d `1 `2))
|
|
(define inst-struct-name4644
|
|
(make-test-struct
|
|
`,inst-struct-name4629
|
|
`,inst-struct-name4635
|
|
`#(7 #\c #\b (+ 1 2))
|
|
`#(#\c (+ 4 5) #t these)))
|
|
(define inst-struct-name4656
|
|
(make-test-struct `symbols `these `#f `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name4663 (make-test-struct `#\c `#\b `#\a `6))
|
|
(define inst-struct-name4668
|
|
(make-test-struct
|
|
`,inst-struct-name4656
|
|
`18
|
|
`,inst-struct-name4663
|
|
`#&(#\b #\c #\a)))
|
|
(define inst-struct-name4676 (make-test-struct `#\a `#\a `5 `are))
|
|
(define inst-struct-name4710
|
|
(make-test-struct
|
|
`#(#\b #f #f)
|
|
`#t
|
|
`18
|
|
`#(9 (#\a #\a #t) #&(#t #\d #t) (+ 1 2))))
|
|
(define inst-struct-name4724 (make-test-struct `#\b `#t `#\a `7))
|
|
(define inst-struct-name4742
|
|
(make-test-struct `#\a `#\a `(+ 4 (+ 1 1)) `#\c))
|
|
(define inst-struct-name4748 (make-test-struct `#\c `#\c `#t `symbols))
|
|
(define inst-struct-name4767
|
|
(make-test-struct `8 `#&((+ 1 2) these #\b) `8 `10))
|
|
(define inst-struct-name4787
|
|
(make-test-struct
|
|
`#f
|
|
`(are #f 8 #f)
|
|
`(+ 4 (+ 1 1))
|
|
`(#\d #\b (+ 1 2) . 7)))
|
|
(define inst-struct-name4798
|
|
(make-test-struct
|
|
`#\b
|
|
`#f
|
|
`#&(3 ((+ 4 (+ 1 1)) #\d (+ 4 (+ 1 1))) ((+ 1 2) #\a 8))
|
|
`#\d))
|
|
(define inst-struct-name4804
|
|
(make-test-struct `5 `(+ 4 (+ 1 1)) `(+ 4 5) `#(symbols 8 #\a)))
|
|
(define inst-struct-name4835
|
|
(make-test-struct `#&(#f (+ 1 2) #f) `(+ 1 2) `#\d `(5 #f #\d are)))
|
|
(define inst-struct-name4844 (make-test-struct `7 `#t `(+ 1 2) `symbols))
|
|
(define inst-struct-name4850 (make-test-struct `these `symbols `4 `are))
|
|
(define inst-struct-name4851
|
|
(make-test-struct
|
|
`(#f #\d #\a)
|
|
`7
|
|
`,inst-struct-name4844
|
|
`,inst-struct-name4850))
|
|
(define inst-struct-name4871 (make-test-struct `#f `symbols `#\a `#t))
|
|
(define inst-struct-name4879
|
|
(make-test-struct
|
|
`(#f #\c #\d)
|
|
`(,inst-struct-name4871 are #(are symbols #\b) (8 #\b (+ 1 2)))
|
|
`14
|
|
`#((+ 4 5) (+ 1 2) (+ 4 5))))
|
|
(define inst-struct-name4891 (make-test-struct `5 `(+ 4 5) `5 `#\a))
|
|
(define inst-struct-name4893
|
|
(make-test-struct
|
|
`(#\a 9 #\a (+ 1 2))
|
|
`,inst-struct-name4891
|
|
`(+ 4 (+ 1 1))
|
|
`#\d))
|
|
(define inst-struct-name4902 (make-test-struct `#\a `#\d `7 `5))
|
|
(define inst-struct-name4934 (make-test-struct `are `#\d `(+ 4 5) `symbols))
|
|
(define inst-struct-name4940 (make-test-struct `#\a `1 `#t `#f))
|
|
(define inst-struct-name4946 (make-test-struct `are `3 `4 `these))
|
|
(define inst-struct-name4980 (make-test-struct `#\d `#t `2 `1))
|
|
(define inst-struct-name4997 (make-test-struct `(+ 1 2) `#\d `these `#\d))
|
|
(define inst-struct-name4999
|
|
(make-test-struct
|
|
`((+ 1 2) #t (+ 4 (+ 1 1)) . 4)
|
|
`,inst-struct-name4997
|
|
`9
|
|
`#t))
|
|
(define inst-struct-name5031 (make-test-struct `#f `#\b `#\c `are))
|
|
(define inst-struct-name5037
|
|
(make-test-struct
|
|
`#\d
|
|
`,inst-struct-name5031
|
|
`(7 2 (+ 1 2))
|
|
`((+ 1 2) (+ 4 (+ 1 1)) are these)))
|
|
(define inst-struct-name5040
|
|
(make-test-struct `(+ 1 2) `symbols `(7 0 #t) `are))
|
|
(define inst-struct-name5059 (make-test-struct `5 `#f `#\c `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name5060
|
|
(make-test-struct
|
|
`#f
|
|
`(are 6 #\a)
|
|
`#t
|
|
`((+ 4 (+ 1 1)) ,inst-struct-name5059 #t . 5)))
|
|
(define inst-struct-name5078 (make-test-struct `#\d `#t `#t `#\a))
|
|
(define inst-struct-name5086
|
|
(make-test-struct `,inst-struct-name5078 `#\a `() `#\a))
|
|
(define inst-struct-name5094 (make-test-struct `0 `#(#\d #\a 1 #t) `() `#\b))
|
|
(define inst-struct-name5097
|
|
(make-test-struct `() `(#\b #f are) `symbols `#t))
|
|
(define inst-struct-name5105 (make-test-struct `#\a `these `#\d `2))
|
|
(define inst-struct-name5110
|
|
(make-test-struct
|
|
`(+ 4 5)
|
|
`#t
|
|
`#\b
|
|
`#(,inst-struct-name5105 #\b #(8 #f #f (+ 4 (+ 1 1))) #\b)))
|
|
(define inst-struct-name5126
|
|
(make-test-struct `(3 these these) `(#\c 3 #\b) `#t `(#\b #f are)))
|
|
(define inst-struct-name5137
|
|
(make-test-struct `#f `7 `(+ 4 (+ 1 1)) `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name5138
|
|
(make-test-struct
|
|
`#\d
|
|
`#((+ 4 (+ 1 1)) (+ 4 5) 2 #t)
|
|
`(+ 4 5)
|
|
`,inst-struct-name5137))
|
|
(define inst-struct-name5140
|
|
(make-test-struct
|
|
`#(() #\a #f #\a)
|
|
`(10 ((+ 4 (+ 1 1)) #t 9 . #\b) (#\c #\a #\a #\a) #t)
|
|
`,inst-struct-name5126
|
|
`,inst-struct-name5138))
|
|
(define inst-struct-name5172
|
|
(make-test-struct
|
|
`(#\c are #t #\d)
|
|
`(+ 4 5)
|
|
`(#f #t (+ 4 (+ 1 1)) . these)
|
|
`16))
|
|
(define inst-struct-name5175
|
|
(make-test-struct
|
|
`,inst-struct-name5172
|
|
`#\a
|
|
`(are #\a 7)
|
|
`#(#f (+ 1 2) (+ 4 5))))
|
|
(define inst-struct-name5182
|
|
(make-test-struct `#\c `(are (+ 4 5) (+ 4 5)) `4 `(7 (+ 4 (+ 1 1)) 4)))
|
|
(define inst-struct-name5195
|
|
(make-test-struct `0 `these `() `((+ 1 2) symbols #f)))
|
|
(define inst-struct-name5207
|
|
(make-test-struct `3 `(+ 1 2) `(+ 4 (+ 1 1)) `4))
|
|
(define inst-struct-name5210
|
|
(make-test-struct
|
|
`()
|
|
`#\a
|
|
`(((+ 4 5) (+ 1 2) (+ 4 5))
|
|
(#\b (+ 4 (+ 1 1)) are . symbols)
|
|
,inst-struct-name5207
|
|
.
|
|
#t)
|
|
`4))
|
|
(define inst-struct-name5226 (make-test-struct `#\b `#\a `(+ 4 5) `#\b))
|
|
(define inst-struct-name5230
|
|
(make-test-struct
|
|
`(#((+ 4 (+ 1 1)) #\b #\a symbols) #\b ,inst-struct-name5226 #\c)
|
|
`(#\d #\b #\b)
|
|
`#(5 8 #\d)
|
|
`#t))
|
|
(define inst-struct-name5238 (make-test-struct `0 `6 `7 `#f))
|
|
(define inst-struct-name5244 (make-test-struct `these `(+ 1 2) `#f `#t))
|
|
(define inst-struct-name5247
|
|
(make-test-struct
|
|
`#(#\b #\a (+ 4 5))
|
|
`,inst-struct-name5244
|
|
`(0 #\b these)
|
|
`#t))
|
|
(define inst-struct-name5249
|
|
(make-test-struct
|
|
`((+ 1 2) (5 #\b #f) #\d ,inst-struct-name5238)
|
|
`,inst-struct-name5247
|
|
`#\c
|
|
`#f))
|
|
(define inst-struct-name5259 (make-test-struct `6 `#\b `(+ 1 2) `8))
|
|
(define inst-struct-name5267
|
|
(make-test-struct `,inst-struct-name5259 `() `8 `(#\c #\d symbols)))
|
|
(define inst-struct-name5299
|
|
(make-test-struct `4 `#\a `(these #(7 are #t) 8 . #t) `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name5336
|
|
(make-test-struct
|
|
`()
|
|
`((#f are #\a) #(#t are symbols #t) (#\d #\b #\b) . #\a)
|
|
`#&(#t #(are (+ 4 5) 1 are) #\d)
|
|
`symbols))
|
|
(define inst-struct-name5350
|
|
(make-test-struct
|
|
`(#\d #f (+ 4 5) (+ 1 2))
|
|
`#t
|
|
`these
|
|
`(#\c #\b #\b . symbols)))
|
|
(define inst-struct-name5363 (make-test-struct `#\c `#t `#f `(+ 1 2)))
|
|
(define inst-struct-name5381
|
|
(make-test-struct
|
|
`these
|
|
`#(7 #t #\c (+ 4 (+ 1 1)))
|
|
`(symbols 2 (+ 1 2) #\a)
|
|
`#((+ 4 5) (+ 4 (+ 1 1)) these 5)))
|
|
(define inst-struct-name5395
|
|
(make-test-struct `6 `(+ 4 (+ 1 1)) `symbols `#\c))
|
|
(define inst-struct-name5402 (make-test-struct `#\b `#t `#\d `#\b))
|
|
(define inst-struct-name5413 (make-test-struct `#\a `#\d `(+ 4 (+ 1 1)) `5))
|
|
(define inst-struct-name5417
|
|
(make-test-struct
|
|
`()
|
|
`()
|
|
`()
|
|
`#&(,inst-struct-name5413 #\a (#t (+ 1 2) #\d))))
|
|
(define inst-struct-name5423 (make-test-struct `8 `4 `1 `#\d))
|
|
(define inst-struct-name5430 (make-test-struct `(+ 4 5) `2 `#\b `7))
|
|
(define inst-struct-name5431
|
|
(make-test-struct `#\a `5 `#\d `,inst-struct-name5430))
|
|
(define inst-struct-name5445 (make-test-struct `#\a `#\b `#\c `these))
|
|
(define inst-struct-name5449
|
|
(make-test-struct
|
|
`(#f (0 9 are (+ 1 2)) (#\d (+ 1 2) 2 . #f) #f)
|
|
`()
|
|
`(,inst-struct-name5445 (9 #\c (+ 1 2)) #(are symbols #\a) #\c)
|
|
`#(#\c #\a symbols)))
|
|
(define inst-struct-name5454 (make-test-struct `2 `#\a `3 `are))
|
|
(define inst-struct-name5459
|
|
(make-test-struct `(+ 4 (+ 1 1)) `#\c `(+ 1 2) `#f))
|
|
(define inst-struct-name5472 (make-test-struct `4 `8 `#t `#\a))
|
|
(define inst-struct-name5482
|
|
(make-test-struct
|
|
`these
|
|
`(#f #\b #t . these)
|
|
`((+ 4 (+ 1 1)) #\d #t . #f)
|
|
`#\a))
|
|
(define inst-struct-name5484
|
|
(make-test-struct
|
|
`#f
|
|
`#&((7 #\a #\d) #(#\b (+ 4 (+ 1 1)) 3) ,inst-struct-name5472)
|
|
`,inst-struct-name5482
|
|
`#\d))
|
|
|
|
;; let-testsuite
|
|
|
|
|
|
(mytest
|
|
(match-let*
|
|
(((list
|
|
(list tlp3121 __3)
|
|
(list)
|
|
(list tlp3122 __3)
|
|
(and (? number? tlp3123) (? even? tlp3124)))
|
|
`((#\a symbols #\a) () (#\b #f 0) 6)))
|
|
(list tlp3121 tlp3122 tlp3123))
|
|
'((#\a symbols #\a) (#\b #f 0) 6))
|
|
(mytest
|
|
(match-let*
|
|
(((list
|
|
(and (and (? test-struct? tlp3158)
|
|
(app
|
|
test-struct-a
|
|
(box
|
|
(list
|
|
(list tlp3125 tlp3126 tlp3127 tlp3128)
|
|
(list tlp3129 ___)
|
|
(and (? test-struct? tlp3135)
|
|
(app test-struct-a tlp3130)
|
|
(app test-struct-b tlp3131)
|
|
(app test-struct-c tlp3132)
|
|
(app test-struct-d tlp3133)))))
|
|
(app
|
|
test-struct-b
|
|
(list-rest
|
|
(list tlp3136 tlp3137 tlp3138 tlp3139)
|
|
(and (? test-struct? tlp3145)
|
|
(app test-struct-a tlp3140)
|
|
(app test-struct-b tlp3141)
|
|
(app test-struct-c tlp3142)
|
|
(app test-struct-d tlp3143))
|
|
(vector tlp3146 tlp3147 tlp3148 tlp3149)
|
|
#\d))
|
|
(app test-struct-c (list tlp3150 __3))
|
|
(app
|
|
test-struct-d
|
|
(list
|
|
#\b
|
|
tlp3151
|
|
(and (? number? tlp3152) (? even? tlp3153))
|
|
(box (list tlp3154 tlp3155 tlp3156)))))
|
|
(and (? test-struct? tlp3159)
|
|
(app
|
|
test-struct-a
|
|
(box
|
|
(list
|
|
(list tlp3160 tlp3161 tlp3162 tlp3163)
|
|
(list tlp3164 ___)
|
|
(and (? test-struct? tlp3165)
|
|
(app test-struct-a tlp3166)
|
|
(app test-struct-b tlp3167)
|
|
(app test-struct-c tlp3168)
|
|
(app test-struct-d tlp3169)))))
|
|
(app
|
|
test-struct-b
|
|
(list-rest
|
|
(list tlp3170 tlp3171 tlp3172 tlp3173)
|
|
(and (? test-struct? tlp3174)
|
|
(app test-struct-a tlp3175)
|
|
(app test-struct-b tlp3176)
|
|
(app test-struct-c tlp3177)
|
|
(app test-struct-d tlp3178))
|
|
(vector tlp3179 tlp3180 tlp3181 tlp3182)
|
|
#\d))
|
|
(app test-struct-c (list tlp3183 __3))
|
|
(app
|
|
test-struct-d
|
|
(list
|
|
#\b
|
|
tlp3184
|
|
(and (? number? tlp3185) (? even? tlp3186))
|
|
(box (list tlp3187 tlp3188 tlp3189))))))
|
|
(not (not #\a))
|
|
(struct
|
|
test-struct
|
|
((vector tlp3190 ...)
|
|
tlp3191
|
|
(and (? test-struct? tlp3198)
|
|
(app test-struct-a (list tlp3192 __3))
|
|
(app test-struct-b tlp3193)
|
|
(app test-struct-c (and tlp3194 tlp3195))
|
|
(app test-struct-d (list tlp3196 ...)))
|
|
tlp3199))
|
|
(list tlp3201 __3))
|
|
`(,inst-struct-name3157 #\a ,inst-struct-name3200 (#t #\b symbols))))
|
|
(list
|
|
tlp3125
|
|
tlp3126
|
|
tlp3127
|
|
tlp3128
|
|
tlp3129
|
|
tlp3130
|
|
tlp3131
|
|
tlp3132
|
|
tlp3133
|
|
tlp3136
|
|
tlp3137
|
|
tlp3138
|
|
tlp3139
|
|
tlp3140
|
|
tlp3141
|
|
tlp3142
|
|
tlp3143
|
|
tlp3146
|
|
tlp3147
|
|
tlp3148
|
|
tlp3149
|
|
tlp3150
|
|
tlp3151
|
|
tlp3152
|
|
tlp3154
|
|
tlp3155
|
|
tlp3156
|
|
tlp3190
|
|
tlp3191
|
|
tlp3192
|
|
tlp3193
|
|
tlp3194
|
|
tlp3196
|
|
tlp3199
|
|
tlp3201))
|
|
'(#f
|
|
(+ 1 2)
|
|
#\d
|
|
#\b
|
|
(#\d 1 symbols)
|
|
6
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
#\a
|
|
5
|
|
7
|
|
symbols
|
|
#t
|
|
#\a
|
|
3
|
|
(+ 4 5)
|
|
7
|
|
(+ 4 (+ 1 1))
|
|
#f
|
|
#\a
|
|
#\d
|
|
(#\a (+ 4 (+ 1 1)) these)
|
|
3
|
|
4
|
|
(+ 4 (+ 1 1))
|
|
#f
|
|
2
|
|
(#\b symbols (+ 1 2))
|
|
symbols
|
|
(8 #\b (+ 1 2))
|
|
(+ 1 2)
|
|
#\a
|
|
((+ 1 2) #f 5)
|
|
5
|
|
(#t #\b symbols)))
|
|
(mytest
|
|
(match-let
|
|
(((list
|
|
(list (and tlp3202 tlp3203) (list tlp3204 ___) tlp3205 tlp3206)
|
|
tlp3207
|
|
tlp3208
|
|
tlp3209)
|
|
`((these ((+ 4 5) #\b 6) #\a #\c) #\b (+ 4 5) 0)))
|
|
(list tlp3202 tlp3204 tlp3205 tlp3206 tlp3207 tlp3208 tlp3209))
|
|
'(these ((+ 4 5) #\b 6) #\a #\c #\b (+ 4 5) 0))
|
|
(mytest
|
|
(match-let*
|
|
(((list (and (list) (list)) tlp3210 tlp3211 _)
|
|
`(() #t (+ 4 (+ 1 1)) #\a)))
|
|
(list tlp3210 tlp3211))
|
|
'(#t (+ 4 (+ 1 1))))
|
|
(mytest
|
|
(match-let
|
|
(((list
|
|
(and (? number? tlp3212) (? even? tlp3213))
|
|
(and (? number? tlp3214) (? even? tlp3215))
|
|
(and (list tlp3216 ___) (list tlp3217 ___))
|
|
tlp3218)
|
|
`(2 16 (#\c symbols (+ 1 2)) 7)))
|
|
(list tlp3212 tlp3214 tlp3216 tlp3218))
|
|
'(2 16 (#\c symbols (+ 1 2)) 7))
|
|
|
|
|
|
(mytest
|
|
(match-let
|
|
(((list
|
|
(vector tlp3219 ...)
|
|
(vector tlp3220 ...)
|
|
(vector tlp3221 ___)
|
|
(list))
|
|
`(#3(#\d #f) #3(#t (+ 1 2) (+ 4 5)) #3(#t are #t) ()))
|
|
((list 'are tlp3222 #\a 9) `(are 3 #\a 9))
|
|
((list
|
|
tlp3223
|
|
(list
|
|
(list-rest
|
|
#\b
|
|
(struct test-struct (tlp3224 tlp3225 tlp3226 tlp3227))
|
|
#f
|
|
'these)
|
|
(list)
|
|
(list-rest
|
|
(vector tlp3229 ...)
|
|
(or (and (? test-struct? tlp3235)
|
|
(app test-struct-a tlp3230)
|
|
(app test-struct-b tlp3231)
|
|
(app test-struct-c tlp3232)
|
|
(app test-struct-d tlp3233))
|
|
(and (? test-struct? tlp3235)
|
|
(app test-struct-a tlp3230)
|
|
(app test-struct-b tlp3231)
|
|
(app test-struct-c tlp3232)
|
|
(app test-struct-d tlp3233)))
|
|
(vector tlp3236 ___)
|
|
5)
|
|
(list))
|
|
(list tlp3237 ..3)
|
|
(and (? test-struct? tlp3240)
|
|
(app test-struct-a (or (list) (list)))
|
|
(app test-struct-b (vector tlp3238 ...))
|
|
(app test-struct-c (not (not #\c)))
|
|
(app test-struct-d #\b)))
|
|
`(#f
|
|
((#\b ,inst-struct-name3228 #f . these)
|
|
()
|
|
(#3((+ 1 2) #\c 2) ,inst-struct-name3234 #3(#t #\b are) . 5)
|
|
())
|
|
(#\d are (+ 4 5))
|
|
,inst-struct-name3239))
|
|
((list
|
|
(list tlp3241 ___)
|
|
(list)
|
|
(list
|
|
(and (and (? test-struct? tlp3253)
|
|
(app
|
|
test-struct-a
|
|
(list-rest tlp3242 tlp3243 tlp3244 tlp3245))
|
|
(app
|
|
test-struct-b
|
|
(vector tlp3246 tlp3247 tlp3248 tlp3249))
|
|
(app
|
|
test-struct-c
|
|
(and (? number? tlp3250) (? even? tlp3251)))
|
|
(app test-struct-d _))
|
|
(and (? test-struct? tlp3254)
|
|
(app
|
|
test-struct-a
|
|
(list-rest tlp3255 tlp3256 tlp3257 tlp3258))
|
|
(app
|
|
test-struct-b
|
|
(vector tlp3259 tlp3260 tlp3261 tlp3262))
|
|
(app
|
|
test-struct-c
|
|
(and (? number? tlp3263) (? even? tlp3264)))
|
|
(app test-struct-d _)))
|
|
(vector
|
|
#\a
|
|
(or 'symbols 'symbols)
|
|
(vector tlp3265 tlp3266 tlp3267 tlp3268)
|
|
(box (list tlp3269 tlp3270 tlp3271)))
|
|
(and (? number? tlp3272) (? even? tlp3273))
|
|
(list tlp3274 ..3))
|
|
tlp3275)
|
|
`((#t #\b symbols)
|
|
()
|
|
(,inst-struct-name3252
|
|
#4(#\a symbols #4(these #\a #f #\a) #&(#t (+ 4 (+ 1 1)) #\b))
|
|
4
|
|
(#t #\d #\c))
|
|
are))
|
|
((list
|
|
(list-rest
|
|
tlp3276
|
|
(struct
|
|
test-struct
|
|
(tlp3277
|
|
(and (vector tlp3278 tlp3279 tlp3280 tlp3281)
|
|
(vector tlp3282 tlp3283 tlp3284 tlp3285))
|
|
(and (not (not #t)) (not (not #t)))
|
|
tlp3286))
|
|
(box (list (list tlp3288 ___) (list tlp3289 __3) tlp3290))
|
|
#\b)
|
|
(list
|
|
(or (list) (list))
|
|
(and (? test-struct? tlp3298)
|
|
(app test-struct-a _)
|
|
(app test-struct-b tlp3291)
|
|
(app test-struct-c (vector tlp3292 ...))
|
|
(app test-struct-d (vector tlp3293 tlp3294 tlp3295 tlp3296)))
|
|
tlp3299
|
|
(and (? test-struct? tlp3313)
|
|
(app test-struct-a (box (list tlp3300 tlp3301 tlp3302)))
|
|
(app
|
|
test-struct-b
|
|
(struct test-struct (tlp3303 tlp3304 tlp3305 tlp3306)))
|
|
(app
|
|
test-struct-c
|
|
(or (list tlp3308 tlp3309 tlp3310 tlp3311)
|
|
(list tlp3308 tlp3309 tlp3310 tlp3311)))
|
|
(app test-struct-d _)))
|
|
(box
|
|
(list
|
|
(and (? test-struct? tlp3323)
|
|
(app test-struct-a (list tlp3314 ...))
|
|
(app test-struct-b (list-rest tlp3315 tlp3316 tlp3317 #\a))
|
|
(app test-struct-c (vector tlp3318 ___))
|
|
(app test-struct-d (box (list tlp3319 tlp3320 tlp3321))))
|
|
(box
|
|
(list (list tlp3324 __3) (vector tlp3325 ___) (list tlp3326 ___)))
|
|
(list
|
|
(list tlp3327 ...)
|
|
tlp3328
|
|
(list tlp3329 ...)
|
|
(list tlp3330 __3))))
|
|
(list tlp3331 ___))
|
|
`((these ,inst-struct-name3287 #&((5 #\a 4) (#\b #\a #f) these) . #\b)
|
|
(() ,inst-struct-name3297 (+ 4 5) ,inst-struct-name3312)
|
|
#&(,inst-struct-name3322
|
|
#&((are 6 2) #3((+ 4 5) these #\a) ((+ 1 2) 0 #\b))
|
|
((#\b these 2) 0 (1 (+ 4 (+ 1 1)) #t) (#\a #t #\a)))
|
|
(these #\d #\b))))
|
|
(list
|
|
tlp3219
|
|
tlp3220
|
|
tlp3221
|
|
tlp3222
|
|
tlp3223
|
|
tlp3224
|
|
tlp3225
|
|
tlp3226
|
|
tlp3227
|
|
tlp3229
|
|
tlp3230
|
|
tlp3231
|
|
tlp3232
|
|
tlp3233
|
|
tlp3236
|
|
tlp3237
|
|
tlp3238
|
|
tlp3241
|
|
tlp3242
|
|
tlp3243
|
|
tlp3244
|
|
tlp3245
|
|
tlp3246
|
|
tlp3247
|
|
tlp3248
|
|
tlp3249
|
|
tlp3250
|
|
tlp3265
|
|
tlp3266
|
|
tlp3267
|
|
tlp3268
|
|
tlp3269
|
|
tlp3270
|
|
tlp3271
|
|
tlp3272
|
|
tlp3274
|
|
tlp3275
|
|
tlp3276
|
|
tlp3277
|
|
tlp3278
|
|
tlp3279
|
|
tlp3280
|
|
tlp3281
|
|
tlp3286
|
|
tlp3288
|
|
tlp3289
|
|
tlp3290
|
|
tlp3291
|
|
tlp3292
|
|
tlp3293
|
|
tlp3294
|
|
tlp3295
|
|
tlp3296
|
|
tlp3299
|
|
tlp3300
|
|
tlp3301
|
|
tlp3302
|
|
tlp3303
|
|
tlp3304
|
|
tlp3305
|
|
tlp3306
|
|
tlp3308
|
|
tlp3309
|
|
tlp3310
|
|
tlp3311
|
|
tlp3314
|
|
tlp3315
|
|
tlp3316
|
|
tlp3317
|
|
tlp3318
|
|
tlp3319
|
|
tlp3320
|
|
tlp3321
|
|
tlp3324
|
|
tlp3325
|
|
tlp3326
|
|
tlp3327
|
|
tlp3328
|
|
tlp3329
|
|
tlp3330
|
|
tlp3331))
|
|
'((#\d #f #f)
|
|
(#t (+ 1 2) (+ 4 5))
|
|
(#t are #t)
|
|
3
|
|
#f
|
|
these
|
|
3
|
|
#\d
|
|
#t
|
|
((+ 1 2) #\c 2)
|
|
(+ 4 5)
|
|
#\a
|
|
#\a
|
|
#f
|
|
(#t #\b are)
|
|
(#\d are (+ 4 5))
|
|
(#\d #\b #\b)
|
|
(#t #\b symbols)
|
|
#t
|
|
#\c
|
|
#\c
|
|
are
|
|
(+ 1 2)
|
|
(+ 4 5)
|
|
#\b
|
|
9
|
|
16
|
|
these
|
|
#\a
|
|
#f
|
|
#\a
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
#\b
|
|
4
|
|
(#t #\d #\c)
|
|
are
|
|
these
|
|
#\d
|
|
(+ 4 5)
|
|
#t
|
|
(+ 4 5)
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
(5 #\a 4)
|
|
(#\b #\a #f)
|
|
these
|
|
#f
|
|
(are symbols #\c)
|
|
these
|
|
symbols
|
|
#t
|
|
#\d
|
|
(+ 4 5)
|
|
symbols
|
|
#\d
|
|
#\c
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
#f
|
|
these
|
|
are
|
|
(+ 1 2)
|
|
(+ 4 5)
|
|
(#t 6 #\c)
|
|
#t
|
|
#\d
|
|
2
|
|
(#f 6 #\b)
|
|
#f
|
|
7
|
|
symbols
|
|
(are 6 2)
|
|
((+ 4 5) these #\a)
|
|
((+ 1 2) 0 #\b)
|
|
(#\b these 2)
|
|
0
|
|
(1 (+ 4 (+ 1 1)) #t)
|
|
(#\a #t #\a)
|
|
(these #\d #\b)))
|
|
(mytest
|
|
(match-let*
|
|
(((list
|
|
#\d
|
|
(list (not (not '(+ 4 5))) tlp3332 (not (not #f)) #t)
|
|
(box
|
|
(list
|
|
tlp3333
|
|
(not (not 7))
|
|
(list-rest
|
|
(vector tlp3334 tlp3335 tlp3336 tlp3337)
|
|
(box (list tlp3338 tlp3339 tlp3340))
|
|
tlp3341
|
|
9)))
|
|
(or (list tlp3342 ___) (list tlp3342 ___)))
|
|
`(#\d
|
|
((+ 4 5) 9 #f #t)
|
|
#&(#f 7 (#4(4 symbols are) #&((+ 4 (+ 1 1)) #\d 3) these . 9))
|
|
(#\d these 7)))
|
|
((list
|
|
(list-rest
|
|
(and (list tlp3343 ...) (list tlp3344 ...))
|
|
(list)
|
|
tlp3345
|
|
#\a)
|
|
(list-rest (not (not #t)) _ _ #f)
|
|
#\a
|
|
(vector
|
|
_
|
|
(or (list
|
|
_
|
|
tlp3346
|
|
(list tlp3347 tlp3348 tlp3349 tlp3350)
|
|
(and (? test-struct? tlp3356)
|
|
(app test-struct-a tlp3351)
|
|
(app test-struct-b tlp3352)
|
|
(app test-struct-c tlp3353)
|
|
(app test-struct-d tlp3354)))
|
|
(list
|
|
_
|
|
tlp3346
|
|
(list tlp3347 tlp3348 tlp3349 tlp3350)
|
|
(and (? test-struct? tlp3356)
|
|
(app test-struct-a tlp3351)
|
|
(app test-struct-b tlp3352)
|
|
(app test-struct-c tlp3353)
|
|
(app test-struct-d tlp3354))))
|
|
(box
|
|
(list
|
|
(vector tlp3357 tlp3358 tlp3359 tlp3360)
|
|
#\d
|
|
(and (? number? tlp3361) (? even? tlp3362))))
|
|
(vector
|
|
(struct test-struct (tlp3363 tlp3364 tlp3365 tlp3366))
|
|
(struct test-struct (tlp3368 tlp3369 tlp3370 tlp3371))
|
|
(and (? number? tlp3373) (? even? tlp3374))
|
|
tlp3375)))
|
|
`(((#\a #\b #f) () #f . #\a)
|
|
(#t #f #t . #f)
|
|
#\a
|
|
#4((+ 1 2)
|
|
(3 #f (#\d are #\c these) ,inst-struct-name3355)
|
|
#&(#4(#t (+ 1 2) #\a #\b) #\d 0)
|
|
#4(,inst-struct-name3367 ,inst-struct-name3372 4 (+ 4 5)))))
|
|
((list (and tlp3376 tlp3377) #\a (list) (vector tlp3378 ...))
|
|
`(3 #\a () #3(1 #t 1)))
|
|
((list
|
|
_
|
|
(vector
|
|
(list-rest
|
|
(list)
|
|
(and (vector tlp3379 tlp3380 tlp3381 tlp3382)
|
|
(vector tlp3383 tlp3384 tlp3385 tlp3386))
|
|
(list tlp3387 ..3)
|
|
3)
|
|
(list
|
|
(list-rest tlp3388 tlp3389 tlp3390 #\a)
|
|
(or (list tlp3391 ..3) (list tlp3391 ..3))
|
|
_
|
|
(struct test-struct (tlp3392 tlp3393 tlp3394 tlp3395)))
|
|
(and (? number? tlp3397) (? even? tlp3398))
|
|
tlp3399)
|
|
tlp3400
|
|
(list))
|
|
`(#\d
|
|
#4((() #4(these 7 #t #\a) (#\d #f #t) . 3)
|
|
(((+ 1 2) (+ 4 5) are . #\a)
|
|
(#\d #t these)
|
|
(+ 4 5)
|
|
,inst-struct-name3396)
|
|
6
|
|
(+ 1 2))
|
|
#\a
|
|
()))
|
|
((list
|
|
(vector tlp3401 ___)
|
|
'(+ 1 2)
|
|
(vector
|
|
_
|
|
'(+ 1 2)
|
|
(and (box
|
|
(list
|
|
(list tlp3402 tlp3403 tlp3404 tlp3405)
|
|
tlp3406
|
|
'(+ 1 2)))
|
|
(box
|
|
(list
|
|
(list tlp3407 tlp3408 tlp3409 tlp3410)
|
|
tlp3411
|
|
'(+ 1 2))))
|
|
(list tlp3412 ..3))
|
|
_)
|
|
`(#3(#\c #\b these)
|
|
(+ 1 2)
|
|
#4(these (+ 1 2) #&((are 4 #f #\d) symbols (+ 1 2)) (#f #\a 6))
|
|
these)))
|
|
(list
|
|
tlp3332
|
|
tlp3333
|
|
tlp3334
|
|
tlp3335
|
|
tlp3336
|
|
tlp3337
|
|
tlp3338
|
|
tlp3339
|
|
tlp3340
|
|
tlp3341
|
|
tlp3342
|
|
tlp3343
|
|
tlp3345
|
|
tlp3346
|
|
tlp3347
|
|
tlp3348
|
|
tlp3349
|
|
tlp3350
|
|
tlp3351
|
|
tlp3352
|
|
tlp3353
|
|
tlp3354
|
|
tlp3357
|
|
tlp3358
|
|
tlp3359
|
|
tlp3360
|
|
tlp3361
|
|
tlp3363
|
|
tlp3364
|
|
tlp3365
|
|
tlp3366
|
|
tlp3368
|
|
tlp3369
|
|
tlp3370
|
|
tlp3371
|
|
tlp3373
|
|
tlp3375
|
|
tlp3376
|
|
tlp3378
|
|
tlp3379
|
|
tlp3380
|
|
tlp3381
|
|
tlp3382
|
|
tlp3387
|
|
tlp3388
|
|
tlp3389
|
|
tlp3390
|
|
tlp3391
|
|
tlp3392
|
|
tlp3393
|
|
tlp3394
|
|
tlp3395
|
|
tlp3397
|
|
tlp3399
|
|
tlp3400
|
|
tlp3401
|
|
tlp3402
|
|
tlp3403
|
|
tlp3404
|
|
tlp3405
|
|
tlp3406
|
|
tlp3412))
|
|
'(9
|
|
#f
|
|
4
|
|
symbols
|
|
are
|
|
are
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
3
|
|
these
|
|
(#\d these 7)
|
|
(#\a #\b #f)
|
|
#f
|
|
#f
|
|
#\d
|
|
are
|
|
#\c
|
|
these
|
|
(+ 1 2)
|
|
these
|
|
#t
|
|
#t
|
|
#t
|
|
(+ 1 2)
|
|
#\a
|
|
#\b
|
|
0
|
|
#\d
|
|
#\a
|
|
6
|
|
(+ 1 2)
|
|
symbols
|
|
#\a
|
|
3
|
|
#\c
|
|
4
|
|
(+ 4 5)
|
|
3
|
|
(1 #t 1)
|
|
these
|
|
7
|
|
#t
|
|
#\a
|
|
(#\d #f #t)
|
|
(+ 1 2)
|
|
(+ 4 5)
|
|
are
|
|
(#\d #t these)
|
|
0
|
|
#\d
|
|
#\a
|
|
#\b
|
|
6
|
|
(+ 1 2)
|
|
#\a
|
|
(#\c #\b these)
|
|
are
|
|
4
|
|
#f
|
|
#\d
|
|
symbols
|
|
(#f #\a 6)))
|
|
(mytest
|
|
(match-let
|
|
(((list
|
|
_
|
|
(list tlp3413 ...)
|
|
(list
|
|
(box
|
|
(list
|
|
(vector tlp3414 ___)
|
|
(struct test-struct (tlp3415 tlp3416 tlp3417 tlp3418))
|
|
(and (? number? tlp3420) (? even? tlp3421))))
|
|
(list-rest
|
|
(not (not #\b))
|
|
(list-rest tlp3422 tlp3423 tlp3424 #\a)
|
|
(list tlp3425 tlp3426 tlp3427 tlp3428)
|
|
#\c)
|
|
(list tlp3429 ...)
|
|
tlp3430)
|
|
tlp3431)
|
|
`((+ 4 5)
|
|
(these #f #\b)
|
|
(#&(#3(7 4 2) ,inst-struct-name3419 8)
|
|
(#\b (#\c 2 #t . #\a) (#f (+ 4 (+ 1 1)) #t #\b) . #\c)
|
|
(#\b 0 2)
|
|
#f)
|
|
#\b))
|
|
((list tlp3432 tlp3433 (list tlp3434 ...) (list))
|
|
`((+ 4 5) #\c (7 #t #\c) ()))
|
|
((list
|
|
(list tlp3435 ...)
|
|
(and (? test-struct? tlp3445)
|
|
(app test-struct-a (list tlp3436 ..3))
|
|
(app test-struct-b (list))
|
|
(app
|
|
test-struct-c
|
|
(list-rest
|
|
(list tlp3437 ___)
|
|
tlp3438
|
|
(vector tlp3439 tlp3440 tlp3441 tlp3442)
|
|
5))
|
|
(app test-struct-d (vector tlp3443 ___)))
|
|
(vector
|
|
(and (and (? test-struct? tlp3456)
|
|
(app test-struct-a (list))
|
|
(app
|
|
test-struct-b
|
|
(list-rest tlp3446 tlp3447 tlp3448 tlp3449))
|
|
(app test-struct-c (box (list tlp3450 tlp3451 tlp3452)))
|
|
(app test-struct-d (and tlp3453 tlp3454)))
|
|
(and (? test-struct? tlp3457)
|
|
(app test-struct-a (list))
|
|
(app
|
|
test-struct-b
|
|
(list-rest tlp3458 tlp3459 tlp3460 tlp3461))
|
|
(app test-struct-c (box (list tlp3462 tlp3463 tlp3464)))
|
|
(app test-struct-d (and tlp3465 tlp3466))))
|
|
tlp3467
|
|
#t
|
|
(box (list (not (not 2)) (box (list tlp3468 tlp3469 tlp3470)) _)))
|
|
(and (? test-struct? tlp3475)
|
|
(app
|
|
test-struct-a
|
|
(list-rest _ (or tlp3471 tlp3471) (not (not #f)) #\d))
|
|
(app test-struct-b tlp3472)
|
|
(app test-struct-c (list))
|
|
(app test-struct-d (list tlp3473 ...))))
|
|
`((these symbols 9)
|
|
,inst-struct-name3444
|
|
#4(,inst-struct-name3455 #\c #t #&(2 #&(are #f (+ 1 2)) #\b))
|
|
,inst-struct-name3474))
|
|
((list
|
|
(struct
|
|
test-struct
|
|
((and (? number? tlp3476) (? even? tlp3477))
|
|
(list
|
|
(or (and (? test-struct? tlp3483)
|
|
(app test-struct-a tlp3478)
|
|
(app test-struct-b tlp3479)
|
|
(app test-struct-c tlp3480)
|
|
(app test-struct-d tlp3481))
|
|
(and (? test-struct? tlp3483)
|
|
(app test-struct-a tlp3478)
|
|
(app test-struct-b tlp3479)
|
|
(app test-struct-c tlp3480)
|
|
(app test-struct-d tlp3481)))
|
|
(vector tlp3484 tlp3485 tlp3486 tlp3487)
|
|
(box (list tlp3488 tlp3489 tlp3490))
|
|
'(+ 4 5))
|
|
(vector tlp3491 ___)
|
|
tlp3492))
|
|
(list tlp3494 ..3)
|
|
(list tlp3495 ..3)
|
|
tlp3496)
|
|
`(,inst-struct-name3493
|
|
(#t #\a (+ 4 (+ 1 1)))
|
|
(are (+ 1 2) these)
|
|
(+ 4 (+ 1 1))))
|
|
((list
|
|
(list
|
|
(box
|
|
(list
|
|
(list tlp3497 tlp3498 tlp3499 tlp3500)
|
|
(and _ _)
|
|
(and (? test-struct? tlp3506)
|
|
(app test-struct-a tlp3501)
|
|
(app test-struct-b tlp3502)
|
|
(app test-struct-c tlp3503)
|
|
(app test-struct-d tlp3504))))
|
|
(list tlp3507 ...)
|
|
(and (? test-struct? tlp3513)
|
|
(app test-struct-a (box (list tlp3508 tlp3509 tlp3510)))
|
|
(app test-struct-b (list))
|
|
(app test-struct-c _)
|
|
(app test-struct-d (list tlp3511 ___)))
|
|
(or (and (struct test-struct (tlp3514 tlp3515 tlp3516 tlp3517))
|
|
(struct test-struct (tlp3519 tlp3520 tlp3521 tlp3522)))
|
|
(and (struct test-struct (tlp3514 tlp3515 tlp3516 tlp3517))
|
|
(struct test-struct (tlp3519 tlp3520 tlp3521 tlp3522)))))
|
|
(list
|
|
(not (not 9))
|
|
#f
|
|
'(+ 4 5)
|
|
(box
|
|
(list
|
|
(and (? test-struct? tlp3528)
|
|
(app test-struct-a tlp3523)
|
|
(app test-struct-b tlp3524)
|
|
(app test-struct-c tlp3525)
|
|
(app test-struct-d tlp3526))
|
|
(list tlp3529 __3)
|
|
(vector tlp3530 tlp3531 tlp3532 tlp3533))))
|
|
(not (not #\d))
|
|
9)
|
|
`((#&((#f #\c (+ 4 5) #\d) #t ,inst-struct-name3505)
|
|
(4 #\d #\c)
|
|
,inst-struct-name3512
|
|
,inst-struct-name3518)
|
|
(9
|
|
#f
|
|
(+ 4 5)
|
|
#&(,inst-struct-name3527 (#\c #\d #\c) #4(symbols #\a #f #\c)))
|
|
#\d
|
|
9)))
|
|
(list
|
|
tlp3413
|
|
tlp3414
|
|
tlp3415
|
|
tlp3416
|
|
tlp3417
|
|
tlp3418
|
|
tlp3420
|
|
tlp3422
|
|
tlp3423
|
|
tlp3424
|
|
tlp3425
|
|
tlp3426
|
|
tlp3427
|
|
tlp3428
|
|
tlp3429
|
|
tlp3430
|
|
tlp3431
|
|
tlp3432
|
|
tlp3433
|
|
tlp3434
|
|
tlp3435
|
|
tlp3436
|
|
tlp3437
|
|
tlp3438
|
|
tlp3439
|
|
tlp3440
|
|
tlp3441
|
|
tlp3442
|
|
tlp3443
|
|
tlp3446
|
|
tlp3447
|
|
tlp3448
|
|
tlp3449
|
|
tlp3450
|
|
tlp3451
|
|
tlp3452
|
|
tlp3453
|
|
tlp3467
|
|
tlp3468
|
|
tlp3469
|
|
tlp3470
|
|
tlp3471
|
|
tlp3472
|
|
tlp3473
|
|
tlp3476
|
|
tlp3478
|
|
tlp3479
|
|
tlp3480
|
|
tlp3481
|
|
tlp3484
|
|
tlp3485
|
|
tlp3486
|
|
tlp3487
|
|
tlp3488
|
|
tlp3489
|
|
tlp3490
|
|
tlp3491
|
|
tlp3492
|
|
tlp3494
|
|
tlp3495
|
|
tlp3496
|
|
tlp3497
|
|
tlp3498
|
|
tlp3499
|
|
tlp3500
|
|
tlp3501
|
|
tlp3502
|
|
tlp3503
|
|
tlp3504
|
|
tlp3507
|
|
tlp3508
|
|
tlp3509
|
|
tlp3510
|
|
tlp3511
|
|
tlp3514
|
|
tlp3515
|
|
tlp3516
|
|
tlp3517
|
|
tlp3523
|
|
tlp3524
|
|
tlp3525
|
|
tlp3526
|
|
tlp3529
|
|
tlp3530
|
|
tlp3531
|
|
tlp3532
|
|
tlp3533))
|
|
'((these #f #\b)
|
|
(7 4 2)
|
|
#\c
|
|
#\c
|
|
symbols
|
|
9
|
|
8
|
|
#\c
|
|
2
|
|
#t
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
#t
|
|
#\b
|
|
(#\b 0 2)
|
|
#f
|
|
#\b
|
|
(+ 4 5)
|
|
#\c
|
|
(7 #t #\c)
|
|
(these symbols 9)
|
|
(#\c (+ 4 (+ 1 1)) (+ 4 5))
|
|
(6 #\a 2)
|
|
0
|
|
these
|
|
#\c
|
|
these
|
|
1
|
|
(#f #\a #\d)
|
|
#\d
|
|
#t
|
|
symbols
|
|
#\d
|
|
#\d
|
|
(+ 4 (+ 1 1))
|
|
these
|
|
2
|
|
#\c
|
|
are
|
|
#f
|
|
(+ 1 2)
|
|
#\c
|
|
#\a
|
|
(#t #\a #\a)
|
|
16
|
|
symbols
|
|
#\b
|
|
#f
|
|
#f
|
|
#f
|
|
#\c
|
|
(+ 4 5)
|
|
#f
|
|
(+ 4 5)
|
|
#\d
|
|
are
|
|
(#t #f 4)
|
|
#\d
|
|
(#t #\a (+ 4 (+ 1 1)))
|
|
(are (+ 1 2) these)
|
|
(+ 4 (+ 1 1))
|
|
#f
|
|
#\c
|
|
(+ 4 5)
|
|
#\d
|
|
4
|
|
(+ 4 (+ 1 1))
|
|
#f
|
|
these
|
|
(4 #\d #\c)
|
|
symbols
|
|
#f
|
|
2
|
|
(are (+ 4 (+ 1 1)) (+ 4 (+ 1 1)))
|
|
8
|
|
#\b
|
|
#\c
|
|
symbols
|
|
#\a
|
|
#t
|
|
4
|
|
#t
|
|
(#\c #\d #\c)
|
|
symbols
|
|
#\a
|
|
#f
|
|
#\c))
|
|
(mytest
|
|
(match-let
|
|
(((list
|
|
tlp3534
|
|
tlp3535
|
|
(list-rest tlp3536 _ tlp3537 'symbols)
|
|
(or (or tlp3538 tlp3538) (or tlp3538 tlp3538)))
|
|
`(symbols #\b (3 (+ 1 2) 2 . symbols) (+ 4 (+ 1 1))))
|
|
((list
|
|
(list tlp3539 __3)
|
|
tlp3540
|
|
(and (? number? tlp3541) (? even? tlp3542))
|
|
(and (? number? tlp3543) (? even? tlp3544)))
|
|
`((#\c #f (+ 1 2)) #t 2 2))
|
|
((list
|
|
(or tlp3545 tlp3545)
|
|
(or #f #f)
|
|
(struct
|
|
test-struct
|
|
(tlp3546 (list tlp3547 ..3) (list tlp3548 ___) tlp3549))
|
|
(list-rest (vector tlp3551 ...) 7 #f #\b))
|
|
`(#\b #f ,inst-struct-name3550 (#3(#f #\b symbols) 7 #f . #\b)))
|
|
((list
|
|
(box
|
|
(list
|
|
(box
|
|
(list
|
|
(or tlp3552 tlp3552)
|
|
tlp3553
|
|
(and (? number? tlp3554) (? even? tlp3555))))
|
|
tlp3556
|
|
(list tlp3557 ___)))
|
|
(list
|
|
(list
|
|
(list-rest tlp3558 tlp3559 tlp3560 #\b)
|
|
(or (vector tlp3561 ___) (vector tlp3561 ___))
|
|
(list-rest tlp3562 tlp3563 tlp3564 #\d)
|
|
tlp3565)
|
|
(and (? test-struct? tlp3579)
|
|
(app
|
|
test-struct-a
|
|
(struct test-struct (tlp3566 tlp3567 tlp3568 tlp3569)))
|
|
(app
|
|
test-struct-b
|
|
(or (and (? number? tlp3571) (? even? tlp3572))
|
|
(and (? number? tlp3571) (? even? tlp3572))))
|
|
(app
|
|
test-struct-c
|
|
(struct test-struct (tlp3573 tlp3574 tlp3575 tlp3576)))
|
|
(app test-struct-d (not (not 9))))
|
|
(and tlp3580 tlp3581)
|
|
(and (? number? tlp3582) (? even? tlp3583)))
|
|
(vector tlp3584 ___)
|
|
(or tlp3585 tlp3585))
|
|
`(#&(#&(9 #\a 4) symbols ((+ 1 2) 0 (+ 4 5)))
|
|
(((#\b (+ 1 2) #f . #\b)
|
|
#3((+ 4 5) #\c)
|
|
((+ 4 5) (+ 4 5) #f . #\d)
|
|
7)
|
|
,inst-struct-name3578
|
|
symbols
|
|
18)
|
|
#3(are #\b #t)
|
|
#\a))
|
|
((list
|
|
(vector tlp3586 ...)
|
|
#f
|
|
(list
|
|
(and (? test-struct? tlp3596)
|
|
(app test-struct-a (list tlp3587 ...))
|
|
(app test-struct-b (list-rest tlp3588 tlp3589 tlp3590 #\c))
|
|
(app test-struct-c (vector tlp3591 tlp3592 tlp3593 tlp3594))
|
|
(app test-struct-d (not (not #\b))))
|
|
(struct
|
|
test-struct
|
|
(#\a (and (? number? tlp3597) (? even? tlp3598)) _ tlp3599))
|
|
(list-rest
|
|
(and (? test-struct? tlp3606)
|
|
(app test-struct-a tlp3601)
|
|
(app test-struct-b tlp3602)
|
|
(app test-struct-c tlp3603)
|
|
(app test-struct-d tlp3604))
|
|
(list tlp3607 __3)
|
|
(and (vector tlp3608 ...) (vector tlp3609 ...))
|
|
6)
|
|
'(+ 1 2))
|
|
#\b)
|
|
`(#3(#\a 0 7)
|
|
#f
|
|
(,inst-struct-name3595
|
|
,inst-struct-name3600
|
|
(,inst-struct-name3605 (#\d 6 #\c) #3(2 symbols 1) . 6)
|
|
(+ 1 2))
|
|
#\b)))
|
|
(list
|
|
tlp3534
|
|
tlp3535
|
|
tlp3536
|
|
tlp3537
|
|
tlp3538
|
|
tlp3539
|
|
tlp3540
|
|
tlp3541
|
|
tlp3543
|
|
tlp3545
|
|
tlp3546
|
|
tlp3547
|
|
tlp3548
|
|
tlp3549
|
|
tlp3551
|
|
tlp3552
|
|
tlp3553
|
|
tlp3554
|
|
tlp3556
|
|
tlp3557
|
|
tlp3558
|
|
tlp3559
|
|
tlp3560
|
|
tlp3561
|
|
tlp3562
|
|
tlp3563
|
|
tlp3564
|
|
tlp3565
|
|
tlp3566
|
|
tlp3567
|
|
tlp3568
|
|
tlp3569
|
|
tlp3571
|
|
tlp3573
|
|
tlp3574
|
|
tlp3575
|
|
tlp3576
|
|
tlp3580
|
|
tlp3582
|
|
tlp3584
|
|
tlp3585
|
|
tlp3586
|
|
tlp3587
|
|
tlp3588
|
|
tlp3589
|
|
tlp3590
|
|
tlp3591
|
|
tlp3592
|
|
tlp3593
|
|
tlp3594
|
|
tlp3597
|
|
tlp3599
|
|
tlp3601
|
|
tlp3602
|
|
tlp3603
|
|
tlp3604
|
|
tlp3607
|
|
tlp3608))
|
|
'(symbols
|
|
#\b
|
|
3
|
|
2
|
|
(+ 4 (+ 1 1))
|
|
(#\c #f (+ 1 2))
|
|
#t
|
|
2
|
|
2
|
|
#\b
|
|
(+ 4 (+ 1 1))
|
|
(#t 8 symbols)
|
|
(#\a #\c #t)
|
|
0
|
|
(#f #\b symbols)
|
|
9
|
|
#\a
|
|
4
|
|
symbols
|
|
((+ 1 2) 0 (+ 4 5))
|
|
#\b
|
|
(+ 1 2)
|
|
#f
|
|
((+ 4 5) #\c #\c)
|
|
(+ 4 5)
|
|
(+ 4 5)
|
|
#f
|
|
7
|
|
#\b
|
|
#\c
|
|
#\d
|
|
#\c
|
|
16
|
|
#\b
|
|
(+ 1 2)
|
|
#\b
|
|
#\b
|
|
symbols
|
|
18
|
|
(are #\b #t)
|
|
#\a
|
|
(#\a 0 7)
|
|
(0 these are)
|
|
#\d
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
#\b
|
|
#\a
|
|
these
|
|
symbols
|
|
0
|
|
2
|
|
are
|
|
1
|
|
3
|
|
#\d
|
|
(#\d 6 #\c)
|
|
(2 symbols 1)))
|
|
(mytest
|
|
(match-let
|
|
(((list _ (not (not #f)) (not (not #f)) (vector tlp3610 ___))
|
|
`(#t #f #f #3(#\b #\d these)))
|
|
((list
|
|
(list tlp3611 ...)
|
|
(vector
|
|
(list tlp3612 ...)
|
|
(and tlp3613 tlp3614)
|
|
(list tlp3615 ...)
|
|
(and (? test-struct? tlp3626)
|
|
(app test-struct-a (and (list) (list)))
|
|
(app test-struct-b tlp3616)
|
|
(app test-struct-c (vector tlp3617 tlp3618 tlp3619 tlp3620))
|
|
(app test-struct-d (vector tlp3621 tlp3622 tlp3623 tlp3624))))
|
|
(and (vector
|
|
tlp3627
|
|
(vector tlp3628 ...)
|
|
(and (? test-struct? tlp3640)
|
|
(app test-struct-a _)
|
|
(app
|
|
test-struct-b
|
|
(struct test-struct (tlp3629 tlp3630 tlp3631 tlp3632)))
|
|
(app test-struct-c (box (list tlp3634 tlp3635 tlp3636)))
|
|
(app test-struct-d (and tlp3637 tlp3638)))
|
|
tlp3641)
|
|
(vector
|
|
tlp3642
|
|
(vector tlp3643 ...)
|
|
(and (? test-struct? tlp3644)
|
|
(app test-struct-a _)
|
|
(app
|
|
test-struct-b
|
|
(struct test-struct (tlp3645 tlp3646 tlp3647 tlp3648)))
|
|
(app test-struct-c (box (list tlp3649 tlp3650 tlp3651)))
|
|
(app test-struct-d (and tlp3652 tlp3653)))
|
|
tlp3654))
|
|
tlp3655)
|
|
`((4 are #\c)
|
|
#4((#\b #t symbols) these ((+ 4 5) 6 #\b) ,inst-struct-name3625)
|
|
#4(#f #3(#\c #\c 6) ,inst-struct-name3639 4)
|
|
#\a))
|
|
((list
|
|
tlp3656
|
|
#\c
|
|
tlp3657
|
|
(list-rest (list tlp3658 __3) #\d (list tlp3659 ___) #\c))
|
|
`(#t #\c (+ 1 2) ((5 #\b 1) #\d (0 symbols #\d) . #\c)))
|
|
((list tlp3660 _ (list) _) `(#\c #\a () #f))
|
|
((list 'these tlp3661 (list) tlp3662) `(these #\a () #f)))
|
|
(list
|
|
tlp3610
|
|
tlp3611
|
|
tlp3612
|
|
tlp3613
|
|
tlp3615
|
|
tlp3616
|
|
tlp3617
|
|
tlp3618
|
|
tlp3619
|
|
tlp3620
|
|
tlp3621
|
|
tlp3622
|
|
tlp3623
|
|
tlp3624
|
|
tlp3627
|
|
tlp3628
|
|
tlp3629
|
|
tlp3630
|
|
tlp3631
|
|
tlp3632
|
|
tlp3634
|
|
tlp3635
|
|
tlp3636
|
|
tlp3637
|
|
tlp3641
|
|
tlp3655
|
|
tlp3656
|
|
tlp3657
|
|
tlp3658
|
|
tlp3659
|
|
tlp3660
|
|
tlp3661
|
|
tlp3662))
|
|
'((#\b #\d these)
|
|
(4 are #\c)
|
|
(#\b #t symbols)
|
|
these
|
|
((+ 4 5) 6 #\b)
|
|
#\a
|
|
#\a
|
|
#\c
|
|
(+ 1 2)
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
#\b
|
|
5
|
|
these
|
|
#f
|
|
(#\c #\c 6)
|
|
(+ 4 (+ 1 1))
|
|
are
|
|
#f
|
|
#\c
|
|
are
|
|
symbols
|
|
4
|
|
#\c
|
|
4
|
|
#\a
|
|
#t
|
|
(+ 1 2)
|
|
(5 #\b 1)
|
|
(0 symbols #\d)
|
|
#\c
|
|
#\a
|
|
#f))
|
|
|
|
|
|
(mytest
|
|
(let ()
|
|
(match-define
|
|
(list
|
|
(vector
|
|
(vector tlp3663 ___)
|
|
(list tlp3664 ___)
|
|
(and (? number? tlp3665) (? even? tlp3666))
|
|
(box (list (vector tlp3667 ...) (list tlp3668 ..3) _)))
|
|
tlp3669
|
|
(list tlp3670 __3)
|
|
tlp3671)
|
|
`(#4(#3(symbols #t (+ 1 2))
|
|
((+ 4 (+ 1 1)) symbols (+ 1 2))
|
|
14
|
|
#&(#3(1 #t #\d) (are 6 #\c) (+ 1 2)))
|
|
#\b
|
|
(symbols #f #\a)
|
|
#\a))
|
|
(list tlp3663 tlp3664 tlp3665 tlp3667 tlp3668 tlp3669 tlp3670 tlp3671))
|
|
'((symbols #t (+ 1 2))
|
|
((+ 4 (+ 1 1)) symbols (+ 1 2))
|
|
14
|
|
(1 #t #\d)
|
|
(are 6 #\c)
|
|
#\b
|
|
(symbols #f #\a)
|
|
#\a))
|
|
(mytest
|
|
(let ()
|
|
(match-define
|
|
(list
|
|
(box
|
|
(list
|
|
(struct
|
|
test-struct
|
|
((vector tlp3672 ...)
|
|
tlp3673
|
|
(and (not (not #\c)) (not (not #\c)))
|
|
(list-rest tlp3674 tlp3675 tlp3676 #\d)))
|
|
tlp3678
|
|
(and (list tlp3679 ...) (list tlp3680 ...))))
|
|
_
|
|
tlp3681
|
|
tlp3682)
|
|
`(#&(,inst-struct-name3677 #\c (are (+ 1 2) (+ 1 2))) 1 3 #f))
|
|
(list
|
|
tlp3672
|
|
tlp3673
|
|
tlp3674
|
|
tlp3675
|
|
tlp3676
|
|
tlp3678
|
|
tlp3679
|
|
tlp3681
|
|
tlp3682))
|
|
'((#\b are #\b) #\a #\b #\c #\d #\c (are (+ 1 2) (+ 1 2)) 3 #f))
|
|
(mytest
|
|
(let ()
|
|
(match-define
|
|
(list
|
|
tlp3683
|
|
(list-rest
|
|
(and #\d #\d)
|
|
(or (list tlp3684 __3) (list tlp3684 __3))
|
|
(list)
|
|
#\d)
|
|
(and (vector tlp3685 ___) (vector tlp3686 ___))
|
|
(list tlp3687 ___))
|
|
`((+ 1 2)
|
|
(#\d (symbols #\d #f) () . #\d)
|
|
#3((+ 4 5) these #f)
|
|
((+ 1 2) these symbols)))
|
|
(list tlp3683 tlp3684 tlp3685 tlp3687))
|
|
'((+ 1 2) (symbols #\d #f) ((+ 4 5) these #f) ((+ 1 2) these symbols)))
|
|
(mytest
|
|
(let ()
|
|
(match-define
|
|
(list
|
|
tlp3688
|
|
tlp3689
|
|
(list
|
|
(box
|
|
(list
|
|
(list tlp3690 ___)
|
|
(and (? number? tlp3691) (? even? tlp3692))
|
|
(not (not #\c))))
|
|
(and (list tlp3693 ...) (list tlp3694 ...))
|
|
tlp3695
|
|
(not (not #f)))
|
|
(vector tlp3696 ...))
|
|
`(#\b
|
|
(+ 4 (+ 1 1))
|
|
(#&((#f #\d 9) 10 #\c) (#\d #t #f) these #f)
|
|
#3(#t #\c #f)))
|
|
(list tlp3688 tlp3689 tlp3690 tlp3691 tlp3693 tlp3695 tlp3696))
|
|
'(#\b (+ 4 (+ 1 1)) (#f #\d 9) 10 (#\d #t #f) these (#t #\c #f)))
|
|
(mytest
|
|
(let ()
|
|
(match-define
|
|
(list
|
|
(struct
|
|
test-struct
|
|
((not (not #\b))
|
|
tlp3697
|
|
(box (list tlp3698 (list tlp3699 ..3) tlp3700))
|
|
(or _ _)))
|
|
(list-rest (list) (vector tlp3702 ...) (and 'are 'are) #\d)
|
|
(box
|
|
(list
|
|
tlp3703
|
|
(vector
|
|
(list tlp3704 ___)
|
|
(list tlp3705 ...)
|
|
(list tlp3706 ___)
|
|
(vector tlp3707 ...))
|
|
(list
|
|
(struct test-struct (tlp3708 tlp3709 tlp3710 tlp3711))
|
|
#t
|
|
(list)
|
|
(list tlp3713 __3))))
|
|
(vector tlp3714 ___))
|
|
`(,inst-struct-name3701
|
|
(() #3(0 #\a (+ 4 5)) are . #\d)
|
|
#&((+ 1 2)
|
|
#4((2 (+ 4 (+ 1 1)) #\d)
|
|
(#\b 0 (+ 4 (+ 1 1)))
|
|
((+ 4 5) symbols #\d)
|
|
#3(4 #\a are))
|
|
(,inst-struct-name3712 #t () (#\c 5 0)))
|
|
#3(#f #\d #\a)))
|
|
(list
|
|
tlp3697
|
|
tlp3698
|
|
tlp3699
|
|
tlp3700
|
|
tlp3702
|
|
tlp3703
|
|
tlp3704
|
|
tlp3705
|
|
tlp3706
|
|
tlp3707
|
|
tlp3708
|
|
tlp3709
|
|
tlp3710
|
|
tlp3711
|
|
tlp3713
|
|
tlp3714))
|
|
'(9
|
|
#\c
|
|
(#f #\d (+ 1 2))
|
|
are
|
|
(0 #\a (+ 4 5))
|
|
(+ 1 2)
|
|
(2 (+ 4 (+ 1 1)) #\d)
|
|
(#\b 0 (+ 4 (+ 1 1)))
|
|
((+ 4 5) symbols #\d)
|
|
(4 #\a are)
|
|
#\d
|
|
#\d
|
|
(+ 4 (+ 1 1))
|
|
are
|
|
(#\c 5 0)
|
|
(#f #\d #\a)))
|
|
|
|
|
|
(let ((tlp3719
|
|
(lambda (tlp3715)
|
|
(match
|
|
tlp3715
|
|
((list
|
|
3
|
|
(and (? number? tlp3716) (? even? tlp3717))
|
|
(and #f #f)
|
|
(or (vector tlp3718 ___) (vector tlp3718 ___)))
|
|
(list tlp3716 tlp3718))))))
|
|
(list
|
|
(mytest (tlp3719 `(3 2 #f #3((+ 1 2) are #\a))) '(2 ((+ 1 2) are #\a)))))
|
|
(let ((tlp3733
|
|
(lambda (tlp3720)
|
|
(match
|
|
tlp3720
|
|
((list
|
|
tlp3721
|
|
tlp3722
|
|
(or (list
|
|
(and (? number? tlp3723) (? even? tlp3724))
|
|
tlp3725
|
|
(list)
|
|
(vector
|
|
tlp3726
|
|
(list tlp3727 tlp3728 tlp3729 tlp3730)
|
|
(list)
|
|
tlp3731))
|
|
(list
|
|
(and (? number? tlp3723) (? even? tlp3724))
|
|
tlp3725
|
|
(list)
|
|
(vector
|
|
tlp3726
|
|
(list tlp3727 tlp3728 tlp3729 tlp3730)
|
|
(list)
|
|
tlp3731)))
|
|
(or tlp3732 tlp3732))
|
|
(list
|
|
tlp3721
|
|
tlp3722
|
|
tlp3723
|
|
tlp3725
|
|
tlp3726
|
|
tlp3727
|
|
tlp3728
|
|
tlp3729
|
|
tlp3730
|
|
tlp3731
|
|
tlp3732))))))
|
|
(list
|
|
(mytest
|
|
(tlp3733
|
|
`(these
|
|
(+ 4 5)
|
|
(16
|
|
(+ 4 5)
|
|
()
|
|
#4(#f ((+ 4 (+ 1 1)) (+ 1 2) (+ 1 2) (+ 4 (+ 1 1))) () are))
|
|
#\c))
|
|
'(these
|
|
(+ 4 5)
|
|
16
|
|
(+ 4 5)
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
(+ 1 2)
|
|
(+ 1 2)
|
|
(+ 4 (+ 1 1))
|
|
are
|
|
#\c))))
|
|
(let ((tlp3824
|
|
(lambda (tlp3734)
|
|
(match
|
|
tlp3734
|
|
((list
|
|
(struct
|
|
test-struct
|
|
((and (list tlp3735 __3) (list tlp3736 __3))
|
|
tlp3737
|
|
(and (? number? tlp3738) (? even? tlp3739))
|
|
(and (? test-struct? tlp3754)
|
|
(app
|
|
test-struct-a
|
|
(and (? test-struct? tlp3745)
|
|
(app test-struct-a tlp3740)
|
|
(app test-struct-b tlp3741)
|
|
(app test-struct-c tlp3742)
|
|
(app test-struct-d tlp3743)))
|
|
(app
|
|
test-struct-b
|
|
(and (vector tlp3746 ___) (vector tlp3747 ___)))
|
|
(app test-struct-c _)
|
|
(app
|
|
test-struct-d
|
|
(struct
|
|
test-struct
|
|
(tlp3748 tlp3749 tlp3750 tlp3751))))))
|
|
#t
|
|
(and (vector
|
|
(list
|
|
_
|
|
(and tlp3756 tlp3757)
|
|
(and (? test-struct? tlp3763)
|
|
(app test-struct-a tlp3758)
|
|
(app test-struct-b tlp3759)
|
|
(app test-struct-c tlp3760)
|
|
(app test-struct-d tlp3761))
|
|
(not (not 'are)))
|
|
_
|
|
(struct
|
|
test-struct
|
|
((box (list tlp3764 tlp3765 tlp3766))
|
|
(vector tlp3767 tlp3768 tlp3769 tlp3770)
|
|
tlp3771
|
|
(struct
|
|
test-struct
|
|
(tlp3772 tlp3773 tlp3774 tlp3775))))
|
|
_)
|
|
(vector
|
|
(list
|
|
_
|
|
(and tlp3778 tlp3779)
|
|
(and (? test-struct? tlp3780)
|
|
(app test-struct-a tlp3781)
|
|
(app test-struct-b tlp3782)
|
|
(app test-struct-c tlp3783)
|
|
(app test-struct-d tlp3784))
|
|
(not (not 'are)))
|
|
_
|
|
(struct
|
|
test-struct
|
|
((box (list tlp3785 tlp3786 tlp3787))
|
|
(vector tlp3788 tlp3789 tlp3790 tlp3791)
|
|
tlp3792
|
|
(struct
|
|
test-struct
|
|
(tlp3793 tlp3794 tlp3795 tlp3796))))
|
|
_))
|
|
(and (? test-struct? tlp3823)
|
|
(app
|
|
test-struct-a
|
|
(and (? test-struct? tlp3806)
|
|
(app
|
|
test-struct-a
|
|
(and (and tlp3797 tlp3798) (and tlp3799 tlp3800)))
|
|
(app
|
|
test-struct-b
|
|
(box (list tlp3801 tlp3802 tlp3803)))
|
|
(app test-struct-c (or '(+ 4 5) '(+ 4 5)))
|
|
(app test-struct-d tlp3804)))
|
|
(app
|
|
test-struct-b
|
|
(box
|
|
(list
|
|
(box (list tlp3807 tlp3808 tlp3809))
|
|
#\c
|
|
(list tlp3810 ..3))))
|
|
(app test-struct-c _)
|
|
(app
|
|
test-struct-d
|
|
(and (? test-struct? tlp3821)
|
|
(app test-struct-a tlp3811)
|
|
(app test-struct-b (list tlp3812 ...))
|
|
(app
|
|
test-struct-c
|
|
(and (? test-struct? tlp3818)
|
|
(app test-struct-a tlp3813)
|
|
(app test-struct-b tlp3814)
|
|
(app test-struct-c tlp3815)
|
|
(app test-struct-d tlp3816)))
|
|
(app test-struct-d (vector tlp3819 ___))))))
|
|
(list
|
|
tlp3735
|
|
tlp3737
|
|
tlp3738
|
|
tlp3740
|
|
tlp3741
|
|
tlp3742
|
|
tlp3743
|
|
tlp3746
|
|
tlp3748
|
|
tlp3749
|
|
tlp3750
|
|
tlp3751
|
|
tlp3756
|
|
tlp3758
|
|
tlp3759
|
|
tlp3760
|
|
tlp3761
|
|
tlp3764
|
|
tlp3765
|
|
tlp3766
|
|
tlp3767
|
|
tlp3768
|
|
tlp3769
|
|
tlp3770
|
|
tlp3771
|
|
tlp3772
|
|
tlp3773
|
|
tlp3774
|
|
tlp3775
|
|
tlp3797
|
|
tlp3801
|
|
tlp3802
|
|
tlp3803
|
|
tlp3804
|
|
tlp3807
|
|
tlp3808
|
|
tlp3809
|
|
tlp3810
|
|
tlp3811
|
|
tlp3812
|
|
tlp3813
|
|
tlp3814
|
|
tlp3815
|
|
tlp3816
|
|
tlp3819))))))
|
|
(list
|
|
(mytest
|
|
(tlp3824
|
|
`(,inst-struct-name3755
|
|
#t
|
|
#4((#f 8 ,inst-struct-name3762 are)
|
|
symbols
|
|
,inst-struct-name3777
|
|
these)
|
|
,inst-struct-name3822))
|
|
'((these 0 3)
|
|
(+ 4 5)
|
|
2
|
|
symbols
|
|
(+ 1 2)
|
|
symbols
|
|
#\b
|
|
(#\c #\d #\d)
|
|
#\b
|
|
#t
|
|
(+ 4 5)
|
|
#\b
|
|
8
|
|
these
|
|
(+ 1 2)
|
|
2
|
|
#\d
|
|
symbols
|
|
(+ 4 (+ 1 1))
|
|
(+ 1 2)
|
|
#\c
|
|
6
|
|
#\c
|
|
#t
|
|
#\b
|
|
#\b
|
|
#\b
|
|
symbols
|
|
these
|
|
#\d
|
|
(+ 1 2)
|
|
#\d
|
|
1
|
|
#\b
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
(#t #\c #f)
|
|
#\d
|
|
(2 (+ 4 (+ 1 1)) symbols)
|
|
1
|
|
(+ 1 2)
|
|
#\d
|
|
(+ 1 2)
|
|
((+ 1 2) 8 (+ 4 5))))))
|
|
(let ((tlp3883
|
|
(lambda (tlp3825)
|
|
(match
|
|
tlp3825
|
|
((list
|
|
(box
|
|
(list
|
|
tlp3826
|
|
tlp3827
|
|
(list-rest
|
|
(list-rest tlp3828 tlp3829 tlp3830 #t)
|
|
(list tlp3831 __3)
|
|
(list-rest tlp3832 tlp3833 tlp3834 'these)
|
|
#\b)))
|
|
(list)
|
|
(and (? test-struct? tlp3857)
|
|
(app test-struct-a (box (list tlp3835 #\a tlp3836)))
|
|
(app
|
|
test-struct-b
|
|
(and (list
|
|
(list tlp3837 __3)
|
|
#t
|
|
(and (? number? tlp3838) (? even? tlp3839))
|
|
(vector tlp3840 ...))
|
|
(list
|
|
(list tlp3841 __3)
|
|
#t
|
|
(and (? number? tlp3842) (? even? tlp3843))
|
|
(vector tlp3844 ...))))
|
|
(app
|
|
test-struct-c
|
|
(list (vector tlp3845 ...) #t tlp3846 (or #f #f)))
|
|
(app
|
|
test-struct-d
|
|
(or (and (? test-struct? tlp3855)
|
|
(app test-struct-a #\b)
|
|
(app test-struct-b _)
|
|
(app
|
|
test-struct-c
|
|
(struct
|
|
test-struct
|
|
(tlp3847 tlp3848 tlp3849 tlp3850)))
|
|
(app
|
|
test-struct-d
|
|
(and (? number? tlp3852) (? even? tlp3853))))
|
|
(and (? test-struct? tlp3855)
|
|
(app test-struct-a #\b)
|
|
(app test-struct-b _)
|
|
(app
|
|
test-struct-c
|
|
(struct
|
|
test-struct
|
|
(tlp3847 tlp3848 tlp3849 tlp3850)))
|
|
(app
|
|
test-struct-d
|
|
(and (? number? tlp3852)
|
|
(? even? tlp3853)))))))
|
|
(list
|
|
(list-rest
|
|
(list-rest tlp3858 tlp3859 tlp3860 'these)
|
|
(box (list tlp3861 tlp3862 tlp3863))
|
|
(not (not '(+ 4 (+ 1 1))))
|
|
#\a)
|
|
(and (list-rest
|
|
(vector tlp3864 tlp3865 tlp3866 tlp3867)
|
|
(vector tlp3868 ...)
|
|
'(+ 4 5)
|
|
#\d)
|
|
(list-rest
|
|
(vector tlp3869 tlp3870 tlp3871 tlp3872)
|
|
(vector tlp3873 ...)
|
|
'(+ 4 5)
|
|
#\d))
|
|
(not (not #\b))
|
|
(vector
|
|
tlp3874
|
|
(not (not '(+ 1 2)))
|
|
(list tlp3875 tlp3876 tlp3877 tlp3878)
|
|
(list tlp3879 tlp3880 tlp3881 tlp3882))))
|
|
(list
|
|
tlp3826
|
|
tlp3827
|
|
tlp3828
|
|
tlp3829
|
|
tlp3830
|
|
tlp3831
|
|
tlp3832
|
|
tlp3833
|
|
tlp3834
|
|
tlp3835
|
|
tlp3836
|
|
tlp3837
|
|
tlp3838
|
|
tlp3840
|
|
tlp3845
|
|
tlp3846
|
|
tlp3847
|
|
tlp3848
|
|
tlp3849
|
|
tlp3850
|
|
tlp3852
|
|
tlp3858
|
|
tlp3859
|
|
tlp3860
|
|
tlp3861
|
|
tlp3862
|
|
tlp3863
|
|
tlp3864
|
|
tlp3865
|
|
tlp3866
|
|
tlp3867
|
|
tlp3868
|
|
tlp3874
|
|
tlp3875
|
|
tlp3876
|
|
tlp3877
|
|
tlp3878
|
|
tlp3879
|
|
tlp3880
|
|
tlp3881
|
|
tlp3882))))))
|
|
(list
|
|
(mytest
|
|
(tlp3883
|
|
`(#&(2
|
|
#\d
|
|
((#t (+ 4 5) are . #t) (#t 8 #\a) (#\c 2 these . these) . #\b))
|
|
()
|
|
,inst-struct-name3856
|
|
(((#\a #\b (+ 1 2) . these) #&(8 are #\b) (+ 4 (+ 1 1)) . #\a)
|
|
(#4((+ 1 2) these #\b #\c) #3(these are #\d) (+ 4 5) . #\d)
|
|
#\b
|
|
#4(#\b (+ 1 2) ((+ 4 (+ 1 1)) #\d #\d #\c) (2 are #\a #t)))))
|
|
'(2
|
|
#\d
|
|
#t
|
|
(+ 4 5)
|
|
are
|
|
(#t 8 #\a)
|
|
#\c
|
|
2
|
|
these
|
|
#t
|
|
symbols
|
|
((+ 4 (+ 1 1)) (+ 4 5) #\b)
|
|
12
|
|
(these #\c #f)
|
|
(#\d these #\d)
|
|
7
|
|
#f
|
|
(+ 1 2)
|
|
#\a
|
|
#f
|
|
18
|
|
#\a
|
|
#\b
|
|
(+ 1 2)
|
|
8
|
|
are
|
|
#\b
|
|
(+ 1 2)
|
|
these
|
|
#\b
|
|
#\c
|
|
(these are #\d)
|
|
#\b
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
#\d
|
|
#\c
|
|
2
|
|
are
|
|
#\a
|
|
#t))))
|
|
(let ((tlp3917
|
|
(lambda (tlp3884)
|
|
(match
|
|
tlp3884
|
|
((list
|
|
(and (? test-struct? tlp3903)
|
|
(app
|
|
test-struct-a
|
|
(and (? test-struct? tlp3891)
|
|
(app test-struct-a tlp3885)
|
|
(app
|
|
test-struct-b
|
|
(list tlp3886 tlp3887 tlp3888 tlp3889))
|
|
(app test-struct-c (not (not #\d)))
|
|
(app test-struct-d _)))
|
|
(app test-struct-b '(+ 4 5))
|
|
(app test-struct-c (list))
|
|
(app
|
|
test-struct-d
|
|
(vector
|
|
(list tlp3892 tlp3893 tlp3894 tlp3895)
|
|
(and (? test-struct? tlp3901)
|
|
(app test-struct-a tlp3896)
|
|
(app test-struct-b tlp3897)
|
|
(app test-struct-c tlp3898)
|
|
(app test-struct-d tlp3899))
|
|
_
|
|
(or (list) (list)))))
|
|
(list tlp3904 ..3)
|
|
(list tlp3905 ...)
|
|
(vector
|
|
(list tlp3906 ...)
|
|
(list-rest
|
|
(list tlp3907 ..3)
|
|
(list-rest tlp3908 tlp3909 tlp3910 #\d)
|
|
5
|
|
'are)
|
|
(list-rest
|
|
tlp3911
|
|
(and (? number? tlp3912) (? even? tlp3913))
|
|
(list tlp3914 ...)
|
|
#\d)
|
|
(list tlp3915 #\b (vector tlp3916 ...) (list))))
|
|
(list
|
|
tlp3885
|
|
tlp3886
|
|
tlp3887
|
|
tlp3888
|
|
tlp3889
|
|
tlp3892
|
|
tlp3893
|
|
tlp3894
|
|
tlp3895
|
|
tlp3896
|
|
tlp3897
|
|
tlp3898
|
|
tlp3899
|
|
tlp3904
|
|
tlp3905
|
|
tlp3906
|
|
tlp3907
|
|
tlp3908
|
|
tlp3909
|
|
tlp3910
|
|
tlp3911
|
|
tlp3912
|
|
tlp3914
|
|
tlp3915
|
|
tlp3916))))))
|
|
(list
|
|
(mytest
|
|
(tlp3917
|
|
`(,inst-struct-name3902
|
|
(these (+ 4 (+ 1 1)) symbols)
|
|
(#\b #\c 7)
|
|
#4((these #\a #\d)
|
|
((#t #\d 9) ((+ 4 5) (+ 4 5) 6 . #\d) 5 . are)
|
|
(#\b 4 (#\a symbols #\c) . #\d)
|
|
((+ 4 (+ 1 1)) #\b #3(#t #\d 8) ()))))
|
|
'(#f
|
|
#t
|
|
#f
|
|
are
|
|
symbols
|
|
#\a
|
|
7
|
|
#\b
|
|
(+ 1 2)
|
|
(+ 4 (+ 1 1))
|
|
0
|
|
#\d
|
|
0
|
|
(these (+ 4 (+ 1 1)) symbols)
|
|
(#\b #\c 7)
|
|
(these #\a #\d)
|
|
(#t #\d 9)
|
|
(+ 4 5)
|
|
(+ 4 5)
|
|
6
|
|
#\b
|
|
4
|
|
(#\a symbols #\c)
|
|
(+ 4 (+ 1 1))
|
|
(#t #\d 8)))))
|
|
|
|
;; sing match-lambda tests
|
|
(let ((tlp4450
|
|
(match-lambda
|
|
((list
|
|
(not (not 'are))
|
|
(list-rest
|
|
tlp4432
|
|
(list-rest tlp4433 (list tlp4434 ...) tlp4435 'symbols)
|
|
(not (not 2))
|
|
'symbols)
|
|
(not (not #\a))
|
|
(list
|
|
(and (? test-struct? tlp4445)
|
|
(app test-struct-a (list-rest tlp4436 tlp4437 tlp4438 9))
|
|
(app
|
|
test-struct-b
|
|
(and (and tlp4439 tlp4440) (and tlp4441 tlp4442)))
|
|
(app test-struct-c '(+ 1 2))
|
|
(app test-struct-d (list tlp4443 ___)))
|
|
tlp4446
|
|
(list-rest 'these tlp4447 (list tlp4448 ..3) 'these)
|
|
(list tlp4449 ___)))
|
|
(list
|
|
tlp4432
|
|
tlp4433
|
|
tlp4434
|
|
tlp4435
|
|
tlp4436
|
|
tlp4437
|
|
tlp4438
|
|
tlp4439
|
|
tlp4443
|
|
tlp4446
|
|
tlp4447
|
|
tlp4448
|
|
tlp4449)))))
|
|
(list
|
|
(mytest
|
|
(tlp4450
|
|
`(are
|
|
(symbols ((+ 1 2) (#f (+ 4 5) (+ 4 5)) #t . symbols) 2 . symbols)
|
|
#\a
|
|
(,inst-struct-name4444
|
|
7
|
|
(these (+ 4 5) (9 (+ 4 5) #\d) . these)
|
|
(#t #f #\b))))
|
|
'(symbols
|
|
(+ 1 2)
|
|
(#f (+ 4 5) (+ 4 5))
|
|
#t
|
|
#\b
|
|
(+ 1 2)
|
|
are
|
|
(+ 1 2)
|
|
(#\c (+ 1 2) #\d)
|
|
7
|
|
(+ 4 5)
|
|
(9 (+ 4 5) #\d)
|
|
(#t #f #\b)))))
|
|
(let ((tlp4473
|
|
(match-lambda
|
|
((list
|
|
tlp4451
|
|
tlp4452
|
|
(and (? test-struct? tlp4471)
|
|
(app
|
|
test-struct-a
|
|
(and (? test-struct? tlp4461)
|
|
(app
|
|
test-struct-a
|
|
(box (list tlp4453 tlp4454 tlp4455)))
|
|
(app test-struct-b (list tlp4456 ...))
|
|
(app
|
|
test-struct-c
|
|
(list-rest tlp4457 tlp4458 tlp4459 'symbols))
|
|
(app test-struct-d '(+ 4 5))))
|
|
(app
|
|
test-struct-b
|
|
(and (? number? tlp4462) (? even? tlp4463)))
|
|
(app test-struct-c tlp4464)
|
|
(app
|
|
test-struct-d
|
|
(or (list-rest
|
|
(list)
|
|
tlp4465
|
|
(list tlp4466 tlp4467 tlp4468 tlp4469)
|
|
#\b)
|
|
(list-rest
|
|
(list)
|
|
tlp4465
|
|
(list tlp4466 tlp4467 tlp4468 tlp4469)
|
|
#\b))))
|
|
tlp4472)
|
|
(list
|
|
tlp4451
|
|
tlp4452
|
|
tlp4453
|
|
tlp4454
|
|
tlp4455
|
|
tlp4456
|
|
tlp4457
|
|
tlp4458
|
|
tlp4459
|
|
tlp4462
|
|
tlp4464
|
|
tlp4465
|
|
tlp4466
|
|
tlp4467
|
|
tlp4468
|
|
tlp4469
|
|
tlp4465
|
|
tlp4466
|
|
tlp4467
|
|
tlp4468
|
|
tlp4469
|
|
tlp4472)))))
|
|
(list
|
|
(mytest
|
|
(tlp4473 `(#f #\a ,inst-struct-name4470 5))
|
|
'(#f
|
|
#\a
|
|
#t
|
|
(+ 4 5)
|
|
#\c
|
|
(1 #\c 1)
|
|
#f
|
|
(+ 4 5)
|
|
#\a
|
|
10
|
|
#t
|
|
#\d
|
|
#f
|
|
#\d
|
|
#\c
|
|
are
|
|
#\d
|
|
#f
|
|
#\d
|
|
#\c
|
|
are
|
|
5))))
|
|
(let ((tlp4520
|
|
(match-lambda
|
|
((list
|
|
(list-rest
|
|
(and (list
|
|
(vector tlp4474 tlp4475 tlp4476 tlp4477)
|
|
(vector tlp4478 tlp4479 tlp4480 tlp4481)
|
|
(list)
|
|
(or tlp4482 tlp4482))
|
|
(list
|
|
(vector tlp4483 tlp4484 tlp4485 tlp4486)
|
|
(vector tlp4487 tlp4488 tlp4489 tlp4490)
|
|
(list)
|
|
(or tlp4491 tlp4491)))
|
|
(and (? number? tlp4492) (? even? tlp4493))
|
|
(list '(+ 1 2) (list tlp4494 ...) tlp4495 tlp4496)
|
|
#f)
|
|
(and (? test-struct? tlp4517)
|
|
(app
|
|
test-struct-a
|
|
(or (box
|
|
(list
|
|
(and (? test-struct? tlp4502)
|
|
(app test-struct-a tlp4497)
|
|
(app test-struct-b tlp4498)
|
|
(app test-struct-c tlp4499)
|
|
(app test-struct-d tlp4500))
|
|
(list)
|
|
(vector tlp4503 tlp4504 tlp4505 tlp4506)))
|
|
(box
|
|
(list
|
|
(and (? test-struct? tlp4502)
|
|
(app test-struct-a tlp4497)
|
|
(app test-struct-b tlp4498)
|
|
(app test-struct-c tlp4499)
|
|
(app test-struct-d tlp4500))
|
|
(list)
|
|
(vector tlp4503 tlp4504 tlp4505 tlp4506)))))
|
|
(app
|
|
test-struct-b
|
|
(and (list-rest
|
|
(list tlp4507 ___)
|
|
(and (? number? tlp4508) (? even? tlp4509))
|
|
(list tlp4510 __3)
|
|
'these)
|
|
(list-rest
|
|
(list tlp4511 ___)
|
|
(and (? number? tlp4512) (? even? tlp4513))
|
|
(list tlp4514 __3)
|
|
'these)))
|
|
(app
|
|
test-struct-c
|
|
(or (list tlp4515 ..3) (list tlp4515 ..3)))
|
|
(app test-struct-d (list)))
|
|
tlp4518
|
|
tlp4519)
|
|
(list
|
|
tlp4474
|
|
tlp4475
|
|
tlp4476
|
|
tlp4477
|
|
tlp4478
|
|
tlp4479
|
|
tlp4480
|
|
tlp4481
|
|
tlp4482
|
|
tlp4492
|
|
tlp4494
|
|
tlp4495
|
|
tlp4496
|
|
tlp4497
|
|
tlp4498
|
|
tlp4499
|
|
tlp4500
|
|
tlp4503
|
|
tlp4504
|
|
tlp4505
|
|
tlp4506
|
|
tlp4507
|
|
tlp4508
|
|
tlp4510
|
|
tlp4515
|
|
tlp4518
|
|
tlp4519)))))
|
|
(list
|
|
(mytest
|
|
(tlp4520
|
|
`(((#4(#\c #\c 0 (+ 4 (+ 1 1))) #4(#f 9 8 #\a) () #t)
|
|
10
|
|
((+ 1 2) ((+ 4 5) symbols (+ 4 (+ 1 1))) #f 3)
|
|
.
|
|
#f)
|
|
,inst-struct-name4516
|
|
(+ 1 2)
|
|
5))
|
|
'(#\c
|
|
#\c
|
|
0
|
|
(+ 4 (+ 1 1))
|
|
#f
|
|
9
|
|
8
|
|
#\a
|
|
#t
|
|
10
|
|
((+ 4 5) symbols (+ 4 (+ 1 1)))
|
|
#f
|
|
3
|
|
#\b
|
|
8
|
|
are
|
|
#\a
|
|
#\b
|
|
#\b
|
|
#t
|
|
#t
|
|
(#\b #\c #t)
|
|
0
|
|
((+ 4 5) #t these)
|
|
(#\a #\b 0)
|
|
(+ 1 2)
|
|
5))))
|
|
(let ((tlp4526
|
|
(match-lambda
|
|
((list
|
|
(and (? number? tlp4521) (? even? tlp4522))
|
|
(or tlp4523 tlp4523)
|
|
tlp4524
|
|
(list tlp4525 ...))
|
|
(list tlp4521 tlp4523 tlp4524 tlp4525)))))
|
|
(list
|
|
(mytest
|
|
(tlp4526 `(4 #\a (+ 4 (+ 1 1)) (are symbols #\c)))
|
|
'(4 #\a (+ 4 (+ 1 1)) (are symbols #\c)))))
|
|
(let ((tlp4561
|
|
(match-lambda
|
|
((list
|
|
(list tlp4527 __3)
|
|
(list
|
|
(and (? test-struct? tlp4540)
|
|
(app
|
|
test-struct-a
|
|
(and (struct
|
|
test-struct
|
|
(tlp4528 tlp4529 tlp4530 tlp4531))
|
|
(struct
|
|
test-struct
|
|
(tlp4533 tlp4534 tlp4535 tlp4536))))
|
|
(app test-struct-b (list tlp4537 ..3))
|
|
(app test-struct-c #\d)
|
|
(app test-struct-d (vector tlp4538 ...)))
|
|
(and (? test-struct? tlp4556)
|
|
(app test-struct-a (not (not #\b)))
|
|
(app
|
|
test-struct-b
|
|
(and (vector tlp4541 tlp4542 tlp4543 tlp4544)
|
|
(vector tlp4545 tlp4546 tlp4547 tlp4548)))
|
|
(app test-struct-c (vector tlp4549 ...))
|
|
(app
|
|
test-struct-d
|
|
(struct test-struct (tlp4550 tlp4551 tlp4552 tlp4553))))
|
|
(box
|
|
(list
|
|
(and (list tlp4557 __3) (list tlp4558 __3))
|
|
tlp4559
|
|
(not (not 4))))
|
|
tlp4560)
|
|
(list)
|
|
(or 'these 'these))
|
|
(list
|
|
tlp4527
|
|
tlp4528
|
|
tlp4529
|
|
tlp4530
|
|
tlp4531
|
|
tlp4537
|
|
tlp4538
|
|
tlp4541
|
|
tlp4542
|
|
tlp4543
|
|
tlp4544
|
|
tlp4549
|
|
tlp4550
|
|
tlp4551
|
|
tlp4552
|
|
tlp4553
|
|
tlp4557
|
|
tlp4559
|
|
tlp4560)))))
|
|
(list
|
|
(mytest
|
|
(tlp4561
|
|
`((4 2 #f)
|
|
(,inst-struct-name4539
|
|
,inst-struct-name4555
|
|
#&((symbols are these) 6 4)
|
|
2)
|
|
()
|
|
these))
|
|
'((4 2 #f)
|
|
(+ 4 (+ 1 1))
|
|
#\c
|
|
#f
|
|
#\c
|
|
(#f 9 symbols)
|
|
(are #f are)
|
|
#\c
|
|
#\b
|
|
#f
|
|
(+ 4 5)
|
|
(#f 5 #\a)
|
|
#f
|
|
#\b
|
|
(+ 4 5)
|
|
these
|
|
(symbols are these)
|
|
6
|
|
2))))
|
|
|
|
;; sing match-lambda* tests
|
|
(let ((tlp4986
|
|
(match-lambda*
|
|
((list tlp4984 'these (not (not #\b)) tlp4985)
|
|
(list tlp4984 tlp4985)))))
|
|
(list (mytest (tlp4986 `3 `these `#\b `symbols) '(3 symbols))))
|
|
(let ((tlp5001
|
|
(match-lambda*
|
|
((list
|
|
_
|
|
(vector tlp4988 ...)
|
|
tlp4989
|
|
(box
|
|
(list
|
|
(not (not '(+ 4 (+ 1 1))))
|
|
(struct
|
|
test-struct
|
|
((list-rest tlp4990 tlp4991 tlp4992 4)
|
|
(struct test-struct (tlp4993 tlp4994 tlp4995 tlp4996))
|
|
tlp4998
|
|
#t))
|
|
tlp5000)))
|
|
(list
|
|
tlp4988
|
|
tlp4989
|
|
tlp4990
|
|
tlp4991
|
|
tlp4992
|
|
tlp4993
|
|
tlp4994
|
|
tlp4995
|
|
tlp4996
|
|
tlp4998
|
|
tlp5000)))))
|
|
(list
|
|
(mytest
|
|
(tlp5001
|
|
`(+ 1 2)
|
|
`#3(#t #\b #\d)
|
|
`#\d
|
|
`#&((+ 4 (+ 1 1)) ,inst-struct-name4999 1))
|
|
'((#t #\b #\d)
|
|
#\d
|
|
(+ 1 2)
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
(+ 1 2)
|
|
#\d
|
|
these
|
|
#\d
|
|
9
|
|
1))))
|
|
(let ((tlp5004
|
|
(match-lambda*
|
|
((list #\b (and (list) (list)) '(+ 4 (+ 1 1)) tlp5003)
|
|
(list tlp5003)))))
|
|
(list (mytest (tlp5004 `#\b `() `(+ 4 (+ 1 1)) `(+ 4 5)) '((+ 4 5)))))
|
|
(let ((tlp5014
|
|
(match-lambda*
|
|
((list
|
|
(vector tlp5006 ...)
|
|
_
|
|
(vector
|
|
(list tlp5007 ..3)
|
|
(box (list (list tlp5008 ___) _ (not (not #t))))
|
|
tlp5009
|
|
(list tlp5010 (vector tlp5011 ...) (list) (list)))
|
|
(and (? number? tlp5012) (? even? tlp5013)))
|
|
(list
|
|
tlp5006
|
|
tlp5007
|
|
tlp5008
|
|
tlp5009
|
|
tlp5010
|
|
tlp5011
|
|
tlp5012)))))
|
|
(list
|
|
(mytest
|
|
(tlp5014
|
|
`#3(#\b (+ 4 (+ 1 1)) #f)
|
|
`(+ 4 5)
|
|
`#4((#\c #\d #\c)
|
|
#&((#\c #\c #\a) are #t)
|
|
#\c
|
|
(#\c #3(these 3 #\c) () ()))
|
|
`6)
|
|
'((#\b (+ 4 (+ 1 1)) #f)
|
|
(#\c #\d #\c)
|
|
(#\c #\c #\a)
|
|
#\c
|
|
#\c
|
|
(these 3 #\c)
|
|
6))))
|
|
(let ((tlp5045
|
|
(match-lambda*
|
|
((list
|
|
(and (list
|
|
(list
|
|
(and (? number? tlp5016) (? even? tlp5017))
|
|
(list)
|
|
#\a
|
|
(list))
|
|
(and (? number? tlp5018) (? even? tlp5019))
|
|
(list)
|
|
tlp5020)
|
|
(list
|
|
(list
|
|
(and (? number? tlp5021) (? even? tlp5022))
|
|
(list)
|
|
#\a
|
|
(list))
|
|
(and (? number? tlp5023) (? even? tlp5024))
|
|
(list)
|
|
tlp5025))
|
|
(or (not (not 'are)) (not (not 'are)))
|
|
tlp5026
|
|
(list
|
|
(struct
|
|
test-struct
|
|
(_
|
|
(or (struct test-struct (tlp5027 tlp5028 tlp5029 tlp5030))
|
|
(struct test-struct (tlp5027 tlp5028 tlp5029 tlp5030)))
|
|
(or (list tlp5032 __3) (list tlp5032 __3))
|
|
(list tlp5033 tlp5034 tlp5035 tlp5036)))
|
|
(and (? test-struct? tlp5041)
|
|
(app test-struct-a '(+ 1 2))
|
|
(app test-struct-b tlp5038)
|
|
(app test-struct-c (list tlp5039 ___))
|
|
(app test-struct-d 'are))
|
|
tlp5042
|
|
(or (and (? number? tlp5043) (? even? tlp5044))
|
|
(and (? number? tlp5043) (? even? tlp5044)))))
|
|
(list
|
|
tlp5016
|
|
tlp5018
|
|
tlp5020
|
|
tlp5026
|
|
tlp5027
|
|
tlp5028
|
|
tlp5029
|
|
tlp5030
|
|
tlp5032
|
|
tlp5033
|
|
tlp5034
|
|
tlp5035
|
|
tlp5036
|
|
tlp5038
|
|
tlp5039
|
|
tlp5042
|
|
tlp5043)))))
|
|
(list
|
|
(mytest
|
|
(tlp5045
|
|
`((10 () #\a ()) 0 () #f)
|
|
`are
|
|
`2
|
|
`(,inst-struct-name5037 ,inst-struct-name5040 are 16))
|
|
'(10
|
|
0
|
|
#f
|
|
2
|
|
#f
|
|
#\b
|
|
#\c
|
|
are
|
|
(7 2 (+ 1 2))
|
|
(+ 1 2)
|
|
(+ 4 (+ 1 1))
|
|
are
|
|
these
|
|
symbols
|
|
(7 0 #t)
|
|
are
|
|
16))))
|
|
|
|
;; testsuite583
|
|
|
|
|
|
(define inst-struct-name782 (make-test-struct `#\d `9 `6 `#\c))
|
|
(define inst-struct-name788 (make-test-struct `(+ 4 5) `#\d `0 `are))
|
|
(define inst-struct-name793 (make-test-struct `(+ 4 (+ 1 1)) `#\b `#\c `3))
|
|
(define inst-struct-name810 (make-test-struct `#f `8 `#\d `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name816 (make-test-struct `6 `4 `#f `#\b))
|
|
(define inst-struct-name818
|
|
(make-test-struct `symbols `() `,inst-struct-name816 `()))
|
|
(define inst-struct-name830 (make-test-struct `#\d `#\b `#t `6))
|
|
(define inst-struct-name836
|
|
(make-test-struct `are `,inst-struct-name830 `(9 are 6 2) `#\d))
|
|
(define inst-struct-name841 (make-test-struct `#f `are `symbols `7))
|
|
(define inst-struct-name862 (make-test-struct `#t `#t `9 `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name876 (make-test-struct `3 `6 `#f `#\d))
|
|
(define inst-struct-name882
|
|
(make-test-struct
|
|
`(#\c (+ 4 (+ 1 1)) (+ 4 (+ 1 1)))
|
|
`(6 #f 4 . #\c)
|
|
`,inst-struct-name876
|
|
`(#\c #\a 9 #\a)))
|
|
(define inst-struct-name888 (make-test-struct `symbols `symbols `#\c `#f))
|
|
(define inst-struct-name891
|
|
(make-test-struct `(+ 1 2) `,inst-struct-name888 `#\d `#f))
|
|
(define inst-struct-name903
|
|
(make-test-struct `#\c `(#f #f symbols) `14 `#3(are #\b #f)))
|
|
(define inst-struct-name925
|
|
(make-test-struct `are `(+ 4 (+ 1 1)) `0 `(#t (+ 4 (+ 1 1)) #t)))
|
|
(define inst-struct-name928
|
|
(make-test-struct
|
|
`(((+ 1 2) (+ 4 (+ 1 1)) are) these these (#t #\b #\d))
|
|
`,inst-struct-name925
|
|
`#f
|
|
`#\c))
|
|
(define inst-struct-name941 (make-test-struct `these `(+ 1 2) `6 `#\d))
|
|
(define inst-struct-name952 (make-test-struct `#f `#t `8 `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name958 (make-test-struct `#f `#\a `#\b `#\a))
|
|
(define inst-struct-name981
|
|
(make-test-struct `symbols `#\a `(+ 1 2) `(+ 1 2)))
|
|
(define inst-struct-name991 (make-test-struct `#\b `#\c `(+ 4 5) `#\d))
|
|
(define inst-struct-name1004
|
|
(make-test-struct `#t `#\b `#\a `((+ 4 (+ 1 1)) #t #\d)))
|
|
(define inst-struct-name1022
|
|
(make-test-struct `(#\b #f #t + 4 (+ 1 1)) `() `(#t #\b #\b) `12))
|
|
(define inst-struct-name1030
|
|
(make-test-struct `2 `these `#4(#\d symbols #\a #\c) `3))
|
|
(define inst-struct-name1032
|
|
(make-test-struct `#\b `6 `,inst-struct-name1022 `,inst-struct-name1030))
|
|
(define inst-struct-name1043 (make-test-struct `#\d `6 `8 `(+ 1 2)))
|
|
(define inst-struct-name1048
|
|
(make-test-struct `#\b `(+ 1 2) `#\b `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name1050
|
|
(make-test-struct
|
|
`(+ 4 5)
|
|
`#f
|
|
`,inst-struct-name1043
|
|
`,inst-struct-name1048))
|
|
(define inst-struct-name1069 (make-test-struct `#\b `(+ 1 2) `8 `symbols))
|
|
(define inst-struct-name1071
|
|
(make-test-struct `are `symbols `#t `,inst-struct-name1069))
|
|
(define inst-struct-name1080
|
|
(make-test-struct `#&(#\d 6 (+ 4 (+ 1 1))) `#t `0 `(#\d #\d (+ 4 5))))
|
|
(define inst-struct-name1087 (make-test-struct `symbols `#t `#\d `(+ 1 2)))
|
|
(define inst-struct-name1091
|
|
(make-test-struct
|
|
`,inst-struct-name1071
|
|
`,inst-struct-name1080
|
|
`#4(6 ,inst-struct-name1087 #\c #f)
|
|
`0))
|
|
(define inst-struct-name1099
|
|
(make-test-struct `8 `() `#3(#\d (+ 1 2) 9) `()))
|
|
(define inst-struct-name1106
|
|
(make-test-struct
|
|
`(#\c 5 #\a . 8)
|
|
`(+ 4 (+ 1 1))
|
|
`(+ 4 (+ 1 1))
|
|
`(+ 4 (+ 1 1))))
|
|
(define inst-struct-name1118
|
|
(make-test-struct
|
|
`((+ 4 (+ 1 1)) these #\d #\a)
|
|
`,inst-struct-name1106
|
|
`#\a
|
|
`#&((are #\c #t (+ 4 5)) (#\b 0 #\c) (1 are (+ 1 2) (+ 4 (+ 1 1))))))
|
|
(define inst-struct-name1125 (make-test-struct `#\b `(+ 4 5) `#\c `these))
|
|
(define inst-struct-name1139
|
|
(make-test-struct
|
|
`#t
|
|
`(#t #\c these . 9)
|
|
`#\a
|
|
`#4(9 (+ 4 (+ 1 1)) #t (+ 1 2))))
|
|
(define inst-struct-name1141
|
|
(make-test-struct
|
|
`(() these ,inst-struct-name1125 #4(6 1 5 #\c))
|
|
`,inst-struct-name1139
|
|
`()
|
|
`5))
|
|
(define inst-struct-name1156
|
|
(make-test-struct
|
|
`((#t 5 9 5) #3(symbols symbols these) 14 (are these are))
|
|
`2
|
|
`(((+ 4 (+ 1 1)) these #f) #3((+ 4 (+ 1 1)) #t #\b) symbols . 0)
|
|
`are))
|
|
(define inst-struct-name1161 (make-test-struct `#\d `#\c `these `1))
|
|
(define inst-struct-name1174 (make-test-struct `#f `(+ 4 5) `#\d `#f))
|
|
(define inst-struct-name1187
|
|
(make-test-struct `,inst-struct-name1174 `#\c `#\c `#&(symbols 2 #\a)))
|
|
(define inst-struct-name1198
|
|
(make-test-struct
|
|
`(#\d #\b #t)
|
|
`#4(#f (+ 4 5) symbols (+ 1 2))
|
|
`#f
|
|
`#&(#\d 8 3)))
|
|
(define inst-struct-name1221
|
|
(make-test-struct `#\c `4 `() `(#\d #\c #\c . #\d)))
|
|
(define inst-struct-name1229
|
|
(make-test-struct `#\c `(+ 4 (+ 1 1)) `these `#f))
|
|
(define inst-struct-name1230
|
|
(make-test-struct `() `#3(#\b 0 (+ 4 5)) `#\b `,inst-struct-name1229))
|
|
(define inst-struct-name1232
|
|
(make-test-struct
|
|
`#3((+ 1 2) #\a 2)
|
|
`,inst-struct-name1221
|
|
`#&(() (+ 1 2) ())
|
|
`,inst-struct-name1230))
|
|
(define inst-struct-name1238
|
|
(make-test-struct `(#f #\c #\c) `#\b `() `(#\d these these)))
|
|
(define inst-struct-name1254
|
|
(make-test-struct `#\b `(+ 4 (+ 1 1)) `#f `(+ 4 5)))
|
|
(define inst-struct-name1260
|
|
(make-test-struct
|
|
`#&(are #\c #t)
|
|
`(9 these #\d)
|
|
`,inst-struct-name1254
|
|
`(are #\b (+ 1 2) 3)))
|
|
(define inst-struct-name1266 (make-test-struct `#t `#\b `#t `#\b))
|
|
(define inst-struct-name1279 (make-test-struct `#\d `#\c `#\a `#t))
|
|
(define inst-struct-name1312
|
|
(make-test-struct `these `#f `#4(#\b #\c 2 #f) `1))
|
|
(define inst-struct-name1316
|
|
(make-test-struct `,inst-struct-name1312 `#t `#\d `(+ 1 2)))
|
|
(define inst-struct-name1325 (make-test-struct `these `#\a `#t `these))
|
|
(define inst-struct-name1340
|
|
(make-test-struct `(+ 4 5) `#\c `symbols `(+ 1 2)))
|
|
(define inst-struct-name1342
|
|
(make-test-struct
|
|
`#t
|
|
`#4(,inst-struct-name1325
|
|
(4 (+ 4 5) #\a)
|
|
(#\d symbols #\b)
|
|
#4(#\c #\c #\b #t))
|
|
`((#\c symbols (+ 4 (+ 1 1)) . #\a) #f 3 ,inst-struct-name1340)
|
|
`#3(8 9 1)))
|
|
(define inst-struct-name1351
|
|
(make-test-struct
|
|
`(these #\a #t)
|
|
`4
|
|
`(#\c (0 #t #\b) #\c #t)
|
|
`(#\a these (+ 1 2))))
|
|
(define inst-struct-name1364
|
|
(make-test-struct `#f `symbols `(+ 1 2) `symbols))
|
|
(define inst-struct-name1367
|
|
(make-test-struct
|
|
`(#\b symbols #\b . 5)
|
|
`(#\b 7 #\a)
|
|
`,inst-struct-name1364
|
|
`these))
|
|
(define inst-struct-name1383 (make-test-struct `#t `#\d `#\a `#f))
|
|
(define inst-struct-name1403 (make-test-struct `(+ 1 2) `#\c `#\b `#\d))
|
|
(define inst-struct-name1409
|
|
(make-test-struct
|
|
`(#\a (+ 4 5) #\b)
|
|
`1
|
|
`,inst-struct-name1403
|
|
`(#\a 1 #\c . are)))
|
|
(define inst-struct-name1439
|
|
(make-test-struct `(#t 8 #f) `#3(#\a are 3) `#\d `are))
|
|
(define inst-struct-name1460 (make-test-struct `#f `#\d `5 `#\b))
|
|
(define inst-struct-name1466
|
|
(make-test-struct
|
|
`(#\a 4 #t)
|
|
`((#\a (+ 1 2) 7 . #\d) () 0 . #t)
|
|
`((#f #\a #\b . #\a)
|
|
are
|
|
(2 symbols #f + 4 (+ 1 1))
|
|
,inst-struct-name1460)
|
|
`#&(2 #\b #\b)))
|
|
(define inst-struct-name1502
|
|
(make-test-struct `#\c `() `#&(2 are 8) `#4(these #\c #\a)))
|
|
(define inst-struct-name1508
|
|
(make-test-struct `#\c `#\d `(#t (+ 4 (+ 1 1)) #\c . symbols) `()))
|
|
(define inst-struct-name1519 (make-test-struct `#t `#\b `#\d `6))
|
|
(define inst-struct-name1534 (make-test-struct `these `#\b `#\c `are))
|
|
(define inst-struct-name1536
|
|
(make-test-struct
|
|
`(#\d #f 0 . #\d)
|
|
`(are are #\c . #\b)
|
|
`(+ 1 2)
|
|
`,inst-struct-name1534))
|
|
(define inst-struct-name1538
|
|
(make-test-struct
|
|
`,inst-struct-name1519
|
|
`2
|
|
`,inst-struct-name1536
|
|
`(+ 4 5)))
|
|
(define inst-struct-name1543 (make-test-struct `2 `3 `#\d `(+ 4 5)))
|
|
(define inst-struct-name1561 (make-test-struct `#f `symbols `#\b `#t))
|
|
(define inst-struct-name1563
|
|
(make-test-struct `(+ 4 (+ 1 1)) `,inst-struct-name1561 `(+ 4 5) `3))
|
|
(define inst-struct-name1572 (make-test-struct `(+ 1 2) `#\a `#\b `#\d))
|
|
(define inst-struct-name1577 (make-test-struct `#\b `#\b `#\b `4))
|
|
(define inst-struct-name1594 (make-test-struct `#f `are `#\b `#f))
|
|
(define inst-struct-name1609
|
|
(make-test-struct
|
|
`(symbols (+ 1 2) #\d)
|
|
`(#\c symbols are)
|
|
`(are are #\c (+ 1 2))
|
|
`(symbols #\d (+ 1 2) . #\b)))
|
|
(define inst-struct-name1619 (make-test-struct `#t `(+ 4 (+ 1 1)) `#\c `#t))
|
|
(define inst-struct-name1635
|
|
(make-test-struct `#\b `#\d `(+ 4 (+ 1 1)) `#\c))
|
|
(define inst-struct-name1663 (make-test-struct `#f `#\a `#f `(+ 1 2)))
|
|
(define inst-struct-name1666
|
|
(make-test-struct
|
|
`(#\c these symbols . #f)
|
|
`(4 5 #f)
|
|
`,inst-struct-name1663
|
|
`(#f (+ 4 5) (+ 4 5))))
|
|
(define inst-struct-name1687 (make-test-struct `symbols `are `1 `are))
|
|
(define inst-struct-name1701
|
|
(make-test-struct
|
|
`#4(#4(these #\d these symbols) (are 6 these) #\c #\d)
|
|
`#3(#f 8 (+ 4 5))
|
|
`(#\b are symbols)
|
|
`#\b))
|
|
(define inst-struct-name1708
|
|
(make-test-struct
|
|
`(+ 1 2)
|
|
`#4(() #&((+ 4 5) #\a #f) () (+ 4 (+ 1 1)))
|
|
`#\b
|
|
`#\a))
|
|
(define inst-struct-name1719
|
|
(make-test-struct `#&(#\d #t #t) `(+ 4 (+ 1 1)) `0 `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name1741 (make-test-struct `these `#t `7 `#\b))
|
|
(define inst-struct-name1775
|
|
(make-test-struct `(8 #f #f (+ 4 (+ 1 1))) `(9 #\c #t) `#f `#t))
|
|
(define inst-struct-name1776
|
|
(make-test-struct
|
|
`symbols
|
|
`#3(#\d #\c (+ 4 (+ 1 1)))
|
|
`#3(symbols #\a #\d)
|
|
`,inst-struct-name1775))
|
|
(define inst-struct-name1786 (make-test-struct `0 `#\a `0 `#t))
|
|
(define inst-struct-name1796
|
|
(make-test-struct `3 `#3(#\b #\c 0) `#t `(+ 4 5)))
|
|
(define inst-struct-name1797
|
|
(make-test-struct
|
|
`((these #t (+ 4 (+ 1 1)) . #\a)
|
|
,inst-struct-name1786
|
|
(#\a #t 7)
|
|
#&(9 #\b symbols))
|
|
`(+ 4 5)
|
|
`,inst-struct-name1796
|
|
`(+ 4 (+ 1 1))))
|
|
(define inst-struct-name1813
|
|
(make-test-struct
|
|
`(symbols #\d #\b are)
|
|
`#4(#\d (+ 4 (+ 1 1)) #f #\b)
|
|
`are
|
|
`()))
|
|
(define inst-struct-name1818
|
|
(make-test-struct
|
|
`#&(#\a (9 #\c symbols) #f)
|
|
`,inst-struct-name1813
|
|
`#&(8 () #\d)
|
|
`#3(#\a these symbols)))
|
|
(define inst-struct-name1832 (make-test-struct `are `1 `() `(12 #\c #t . 4)))
|
|
(define inst-struct-name1873 (make-test-struct `#t `7 `#\b `(+ 4 5)))
|
|
(define inst-struct-name1876
|
|
(make-test-struct
|
|
`0
|
|
`#&(#f 0 these)
|
|
`,inst-struct-name1873
|
|
`(+ 4 (+ 1 1))))
|
|
(define inst-struct-name1896
|
|
(make-test-struct
|
|
`#3(5 (+ 1 2) these)
|
|
`(+ 4 (+ 1 1))
|
|
`0
|
|
`#3(#\a #\d these)))
|
|
(define inst-struct-name1900
|
|
(make-test-struct `0 `these `#3(6 are symbols) `#3((+ 4 5) #t 8)))
|
|
(define inst-struct-name1919
|
|
(make-test-struct `(+ 1 2) `#\b `#&((+ 1 2) #\a #t) `#\b))
|
|
(define inst-struct-name1935
|
|
(make-test-struct `#&(2 #\c #\c) `(#f 0 6 #f) `#&(1 #\a symbols) `#\b))
|
|
(define inst-struct-name1941 (make-test-struct `#\b `(+ 4 5) `#f `are))
|
|
(define inst-struct-name1947 (make-test-struct `(+ 4 (+ 1 1)) `#\d `5 `#\d))
|
|
(define inst-struct-name1948
|
|
(make-test-struct
|
|
`(+ 4 5)
|
|
`,inst-struct-name1941
|
|
`(1 #\b (+ 4 5))
|
|
`,inst-struct-name1947))
|
|
(define inst-struct-name1955 (make-test-struct `2 `5 `#\c `()))
|
|
(define inst-struct-name1962
|
|
(make-test-struct `#4(#t are #\b #f) `#3(#f #f (+ 4 5)) `#t `()))
|
|
(define inst-struct-name1975 (make-test-struct `(+ 1 2) `(+ 1 2) `#\c `#f))
|
|
(define inst-struct-name1977
|
|
(make-test-struct
|
|
`symbols
|
|
`symbols
|
|
`(+ 4 (+ 1 1))
|
|
`(#3(2 (+ 4 5) #\b) are ,inst-struct-name1975 . 5)))
|
|
(define inst-struct-name1995 (make-test-struct `#\a `(+ 4 5) `8 `8))
|
|
(define inst-struct-name1996
|
|
(make-test-struct
|
|
`(#\c (+ 4 (+ 1 1)) 2 . #\a)
|
|
`(#\b #\c (+ 4 (+ 1 1)) . are)
|
|
`#\b
|
|
`,inst-struct-name1995))
|
|
(define inst-struct-name2013
|
|
(make-test-struct `18 `() `,inst-struct-name1996 `(are #\c symbols)))
|
|
(define inst-struct-name2041
|
|
(make-test-struct `(+ 1 2) `7 `#&(#\c #\d (+ 4 5)) `#t))
|
|
(define inst-struct-name2085
|
|
(make-test-struct `#4(#t (+ 4 5) (+ 4 5) #t) `0 `#\c `(these these 7)))
|
|
(define inst-struct-name2093
|
|
(make-test-struct `(#\b 9 #\b) `16 `#\a `#4((+ 1 2) 9 () 2)))
|
|
(define inst-struct-name2104
|
|
(make-test-struct `#\b `(symbols 1 (+ 4 5)) `12 `0))
|
|
(define inst-struct-name2110 (make-test-struct `#\a `#\a `these `symbols))
|
|
(define inst-struct-name2117
|
|
(make-test-struct
|
|
`,inst-struct-name2110
|
|
`#3(#t 4 7)
|
|
`(+ 1 2)
|
|
`#4(2 symbols (+ 4 (+ 1 1)) 5)))
|
|
(define inst-struct-name2125 (make-test-struct `#\c `(+ 4 (+ 1 1)) `#\c `2))
|
|
(define inst-struct-name2127
|
|
(make-test-struct
|
|
`(+ 4 5)
|
|
`()
|
|
`,inst-struct-name2117
|
|
`#4(#&(are 6 #\c) ,inst-struct-name2125 9 ())))
|
|
(define inst-struct-name2133
|
|
(make-test-struct
|
|
`symbols
|
|
`#3(#\b #\a #\d)
|
|
`((+ 4 5) #\d #\b . symbols)
|
|
`these))
|
|
(define inst-struct-name2138
|
|
(make-test-struct `0 `,inst-struct-name2133 `10 `#\d))
|
|
(define inst-struct-name2146 (make-test-struct `9 `#t `#t `(+ 4 5)))
|
|
(define inst-struct-name2153
|
|
(make-test-struct `#\c `symbols `(+ 4 (+ 1 1)) `#\a))
|
|
(define inst-struct-name2160
|
|
(make-test-struct
|
|
`(,inst-struct-name2146 #f 3 . #t)
|
|
`2
|
|
`#\c
|
|
`(,inst-struct-name2153 #f #&(7 0 2) . #\b)))
|
|
(define inst-struct-name2170 (make-test-struct `6 `8 `#f `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name2188
|
|
(make-test-struct `#t `symbols `(+ 4 (+ 1 1)) `#t))
|
|
(define inst-struct-name2190
|
|
(make-test-struct
|
|
`#4(7 #\a (these 9 (+ 1 2)) ())
|
|
`2
|
|
`#\b
|
|
`#4(#3(are #\a #\c) #\a ,inst-struct-name2188 #\d)))
|
|
(define inst-struct-name2202 (make-test-struct `are `#f `#t `are))
|
|
(define inst-struct-name2204
|
|
(make-test-struct `(+ 1 2) `6 `,inst-struct-name2202 `#\c))
|
|
(define inst-struct-name2211
|
|
(make-test-struct `#t `(+ 4 (+ 1 1)) `symbols `these))
|
|
(define inst-struct-name2215
|
|
(make-test-struct
|
|
`(+ 4 (+ 1 1))
|
|
`,inst-struct-name2211
|
|
`(#f 6 #\c)
|
|
`(#\b #\b 1)))
|
|
(define inst-struct-name2245
|
|
(make-test-struct `#\c `#\a `symbols `(+ 4 (+ 1 1))))
|
|
(define inst-struct-name2252 (make-test-struct `2 `5 `#t `2))
|
|
(define inst-struct-name2263
|
|
(make-test-struct
|
|
`#\a
|
|
`#3(#\d symbols (+ 4 5))
|
|
`()
|
|
`((+ 1 2) (are #\b #\d) #\b . these)))
|
|
(define inst-struct-name2269
|
|
(make-test-struct `(symbols #\a #\a) `are `#f `()))
|
|
(define inst-struct-name2279
|
|
(make-test-struct
|
|
`#3(#\a #\b symbols)
|
|
`#3((+ 4 (+ 1 1)) #\d 2)
|
|
`#3(#f #\b (+ 1 2))
|
|
`(these #\b are)))
|
|
(define inst-struct-name2305 (make-test-struct `#\c `() `#t `(#\c 0 9)))
|
|
(define inst-struct-name2310 (make-test-struct `#\b `() `symbols `18))
|
|
(define inst-struct-name2327 (make-test-struct `#\d `#f `these `3))
|
|
(define inst-struct-name2335 (make-test-struct `#f `#\c `#\d `2))
|
|
(define inst-struct-name2336
|
|
(make-test-struct `#\b `,inst-struct-name2335 `#\c `()))
|
|
(define inst-struct-name2354 (make-test-struct `(+ 1 2) `#\b `0 `#\d))
|
|
(define inst-struct-name2359 (make-test-struct `#\d `#f `(+ 4 (+ 1 1)) `#f))
|
|
(define inst-struct-name2370
|
|
(make-test-struct `#\d `#\c `(these 6 #\a (+ 1 2)) `()))
|
|
(define inst-struct-name2376 (make-test-struct `(+ 1 2) `1 `3 `#\a))
|
|
(define inst-struct-name2382
|
|
(make-test-struct
|
|
`,inst-struct-name2376
|
|
`(#\b (+ 4 5) (+ 1 2))
|
|
`18
|
|
`#3(8 #\a (+ 4 5))))
|
|
(define inst-struct-name2388 (make-test-struct `#f `4 `3 `#t))
|
|
(define inst-struct-name2395
|
|
(make-test-struct
|
|
`,inst-struct-name2370
|
|
`,inst-struct-name2382
|
|
`#&((#\c #\c (+ 1 2)) ,inst-struct-name2388 (+ 4 5))
|
|
`14))
|
|
(define inst-struct-name2408
|
|
(make-test-struct
|
|
`#4(#\d #f these symbols)
|
|
`10
|
|
`these
|
|
`((+ 4 (+ 1 1)) symbols (+ 4 5) . symbols)))
|
|
(define inst-struct-name2413
|
|
(make-test-struct `(0 #\b #\b) `#\a `symbols `2))
|
|
(define inst-struct-name2438
|
|
(make-test-struct
|
|
`#&((+ 4 (+ 1 1)) (+ 1 2) (+ 4 5))
|
|
`#f
|
|
`#4((+ 4 (+ 1 1)) 9 #t #\c)
|
|
`6))
|
|
(define inst-struct-name2454
|
|
(make-test-struct `#3(#\a symbols 8) `#\d `#f `#3(1 #\c 4)))
|
|
(define inst-struct-name2465
|
|
(make-test-struct `() `#\b `symbols `#4(#t (+ 4 5) #t #\d)))
|
|
(define inst-struct-name2469
|
|
(make-test-struct
|
|
`#\b
|
|
`,inst-struct-name2465
|
|
`#\d
|
|
`#&(#\b #3(4 are 1) (+ 1 2))))
|
|
(define inst-struct-name2480
|
|
(make-test-struct
|
|
`#4((+ 1 2) 7 are #\b)
|
|
`(#\b symbols #\d)
|
|
`(#\d symbols symbols)
|
|
`(+ 1 2)))
|
|
|
|
|
|
|
|
;; multi tests
|
|
|
|
|
|
(mytest
|
|
(match-let*
|
|
(((list
|
|
(or (and #\c #\c) (and #\c #\c))
|
|
(list tlp963 __3)
|
|
(not (not #f))
|
|
(list
|
|
(and (or (list-rest tlp964 tlp965 tlp966 'are)
|
|
(list-rest tlp964 tlp965 tlp966 'are))
|
|
(or (list-rest tlp967 tlp968 tlp969 'are)
|
|
(list-rest tlp967 tlp968 tlp969 'are)))
|
|
(list tlp970 __3)
|
|
tlp971
|
|
tlp972))
|
|
`(#\c (#\d #f #\c) #f ((6 8 2 . are) ((+ 1 2) #t #\c) are #f)))
|
|
((list
|
|
(box
|
|
(list
|
|
(list
|
|
(list-rest tlp973 tlp974 tlp975 'symbols)
|
|
(not (not 'these))
|
|
tlp976
|
|
(and (? test-struct? tlp982)
|
|
(app test-struct-a tlp977)
|
|
(app test-struct-b tlp978)
|
|
(app test-struct-c tlp979)
|
|
(app test-struct-d tlp980)))
|
|
(list
|
|
(list tlp983 tlp984 tlp985 tlp986)
|
|
(and (? test-struct? tlp992)
|
|
(app test-struct-a tlp987)
|
|
(app test-struct-b tlp988)
|
|
(app test-struct-c tlp989)
|
|
(app test-struct-d tlp990))
|
|
(vector tlp993 tlp994 tlp995 tlp996)
|
|
(box (list tlp997 tlp998 tlp999)))
|
|
(or tlp1000 tlp1000)))
|
|
(and (? test-struct? tlp1005)
|
|
(app test-struct-a #t)
|
|
(app test-struct-b (or tlp1001 tlp1001))
|
|
(app test-struct-c tlp1002)
|
|
(app test-struct-d (list tlp1003 ...)))
|
|
(not (not 'these))
|
|
(list tlp1006 ___))
|
|
`(#&(((symbols are these . symbols) these #\c ,inst-struct-name981)
|
|
((#t #\a #\c (+ 1 2))
|
|
,inst-struct-name991
|
|
#4(#t are #\a #\d)
|
|
#&(#\a (+ 1 2) (+ 4 (+ 1 1))))
|
|
#\d)
|
|
,inst-struct-name1004
|
|
these
|
|
(#\d symbols #t)))
|
|
((list
|
|
(list)
|
|
(and (? test-struct? tlp1033)
|
|
(app test-struct-a tlp1007)
|
|
(app test-struct-b (and (? number? tlp1008) (? even? tlp1009)))
|
|
(app
|
|
test-struct-c
|
|
(and (? test-struct? tlp1023)
|
|
(app
|
|
test-struct-a
|
|
(and (list-rest tlp1010 tlp1011 tlp1012 tlp1013)
|
|
(list-rest tlp1014 tlp1015 tlp1016 tlp1017)))
|
|
(app test-struct-b (list))
|
|
(app
|
|
test-struct-c
|
|
(and (list tlp1018 ___) (list tlp1019 ___)))
|
|
(app
|
|
test-struct-d
|
|
(and (? number? tlp1020) (? even? tlp1021)))))
|
|
(app
|
|
test-struct-d
|
|
(and (? test-struct? tlp1031)
|
|
(app
|
|
test-struct-a
|
|
(or (and (? number? tlp1024) (? even? tlp1025))
|
|
(and (? number? tlp1024) (? even? tlp1025))))
|
|
(app test-struct-b _)
|
|
(app
|
|
test-struct-c
|
|
(vector tlp1026 tlp1027 tlp1028 tlp1029))
|
|
(app test-struct-d _))))
|
|
9
|
|
(list
|
|
(struct
|
|
test-struct
|
|
((and (and tlp1034 tlp1035) (and tlp1036 tlp1037))
|
|
tlp1038
|
|
(struct test-struct (tlp1039 tlp1040 tlp1041 tlp1042))
|
|
(and (? test-struct? tlp1049)
|
|
(app test-struct-a tlp1044)
|
|
(app test-struct-b tlp1045)
|
|
(app test-struct-c tlp1046)
|
|
(app test-struct-d tlp1047))))
|
|
tlp1051
|
|
1
|
|
_))
|
|
`(() ,inst-struct-name1032 9 (,inst-struct-name1050 #f 1 these))))
|
|
(list
|
|
tlp963
|
|
tlp964
|
|
tlp965
|
|
tlp966
|
|
tlp964
|
|
tlp965
|
|
tlp966
|
|
tlp970
|
|
tlp971
|
|
tlp972
|
|
tlp973
|
|
tlp974
|
|
tlp975
|
|
tlp976
|
|
tlp977
|
|
tlp978
|
|
tlp979
|
|
tlp980
|
|
tlp983
|
|
tlp984
|
|
tlp985
|
|
tlp986
|
|
tlp987
|
|
tlp988
|
|
tlp989
|
|
tlp990
|
|
tlp993
|
|
tlp994
|
|
tlp995
|
|
tlp996
|
|
tlp997
|
|
tlp998
|
|
tlp999
|
|
tlp1000
|
|
tlp1001
|
|
tlp1002
|
|
tlp1003
|
|
tlp1006
|
|
tlp1007
|
|
tlp1008
|
|
tlp1010
|
|
tlp1011
|
|
tlp1012
|
|
tlp1013
|
|
tlp1018
|
|
tlp1020
|
|
tlp1024
|
|
tlp1026
|
|
tlp1027
|
|
tlp1028
|
|
tlp1029
|
|
tlp1034
|
|
tlp1038
|
|
tlp1039
|
|
tlp1040
|
|
tlp1041
|
|
tlp1042
|
|
tlp1044
|
|
tlp1045
|
|
tlp1046
|
|
tlp1047
|
|
tlp1051))
|
|
'((#\d #f #\c)
|
|
6
|
|
8
|
|
2
|
|
6
|
|
8
|
|
2
|
|
((+ 1 2) #t #\c)
|
|
are
|
|
#f
|
|
symbols
|
|
are
|
|
these
|
|
#\c
|
|
symbols
|
|
#\a
|
|
(+ 1 2)
|
|
(+ 1 2)
|
|
#t
|
|
#\a
|
|
#\c
|
|
(+ 1 2)
|
|
#\b
|
|
#\c
|
|
(+ 4 5)
|
|
#\d
|
|
#t
|
|
are
|
|
#\a
|
|
#\d
|
|
#\a
|
|
(+ 1 2)
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
#\b
|
|
#\a
|
|
((+ 4 (+ 1 1)) #t #\d)
|
|
(#\d symbols #t)
|
|
#\b
|
|
6
|
|
#\b
|
|
#f
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
(#t #\b #\b)
|
|
12
|
|
2
|
|
#\d
|
|
symbols
|
|
#\a
|
|
#\c
|
|
(+ 4 5)
|
|
#f
|
|
#\d
|
|
6
|
|
8
|
|
(+ 1 2)
|
|
#\b
|
|
(+ 1 2)
|
|
#\b
|
|
(+ 4 (+ 1 1))
|
|
#f))
|
|
(mytest
|
|
(match-let*
|
|
(((list
|
|
(list)
|
|
(list tlp1052 ...)
|
|
(list-rest
|
|
(list tlp1053 ..3)
|
|
(vector tlp1054 ...)
|
|
(vector
|
|
tlp1055
|
|
(vector tlp1056 ___)
|
|
(list tlp1057 ...)
|
|
(box (list tlp1058 tlp1059 tlp1060)))
|
|
#\d)
|
|
(and (? number? tlp1061) (? even? tlp1062)))
|
|
`(()
|
|
(6 #f #f)
|
|
((1 symbols (+ 4 (+ 1 1)))
|
|
#3(#\c are #f)
|
|
#4(3 #3(#\b #\a) (#\a #t (+ 1 2)) #&(3 #\d #\b))
|
|
.
|
|
#\d)
|
|
14))
|
|
((list
|
|
(and (? test-struct? tlp1092)
|
|
(app
|
|
test-struct-a
|
|
(struct
|
|
test-struct
|
|
((not (not 'are))
|
|
tlp1063
|
|
tlp1064
|
|
(and (? test-struct? tlp1070)
|
|
(app test-struct-a tlp1065)
|
|
(app test-struct-b tlp1066)
|
|
(app test-struct-c tlp1067)
|
|
(app test-struct-d tlp1068)))))
|
|
(app
|
|
test-struct-b
|
|
(struct
|
|
test-struct
|
|
((box (list tlp1072 tlp1073 tlp1074))
|
|
(and tlp1075 tlp1076)
|
|
tlp1077
|
|
(and (list tlp1078 ...) (list tlp1079 ...)))))
|
|
(app
|
|
test-struct-c
|
|
(or (vector
|
|
(and tlp1081 tlp1082)
|
|
(and (? test-struct? tlp1088)
|
|
(app test-struct-a tlp1083)
|
|
(app test-struct-b tlp1084)
|
|
(app test-struct-c tlp1085)
|
|
(app test-struct-d tlp1086))
|
|
#\c
|
|
#f)
|
|
(vector
|
|
(and tlp1081 tlp1082)
|
|
(and (? test-struct? tlp1088)
|
|
(app test-struct-a tlp1083)
|
|
(app test-struct-b tlp1084)
|
|
(app test-struct-c tlp1085)
|
|
(app test-struct-d tlp1086))
|
|
#\c
|
|
#f)))
|
|
(app
|
|
test-struct-d
|
|
(and (? number? tlp1089) (? even? tlp1090))))
|
|
#t
|
|
(list tlp1093 ..3)
|
|
_)
|
|
`(,inst-struct-name1091 #t ((+ 4 5) #t these) (+ 4 5)))
|
|
((list (list tlp1094 __3) tlp1095 (list tlp1096 ..3) (list))
|
|
`((are symbols #t) #\c (these are (+ 4 (+ 1 1))) ())))
|
|
(list
|
|
tlp1052
|
|
tlp1053
|
|
tlp1054
|
|
tlp1055
|
|
tlp1056
|
|
tlp1057
|
|
tlp1058
|
|
tlp1059
|
|
tlp1060
|
|
tlp1061
|
|
tlp1063
|
|
tlp1064
|
|
tlp1065
|
|
tlp1066
|
|
tlp1067
|
|
tlp1068
|
|
tlp1072
|
|
tlp1073
|
|
tlp1074
|
|
tlp1075
|
|
tlp1077
|
|
tlp1078
|
|
tlp1081
|
|
tlp1083
|
|
tlp1084
|
|
tlp1085
|
|
tlp1086
|
|
tlp1089
|
|
tlp1093
|
|
tlp1094
|
|
tlp1095
|
|
tlp1096))
|
|
'((6 #f #f)
|
|
(1 symbols (+ 4 (+ 1 1)))
|
|
(#\c are #f)
|
|
3
|
|
(#\b #\a #\a)
|
|
(#\a #t (+ 1 2))
|
|
3
|
|
#\d
|
|
#\b
|
|
14
|
|
symbols
|
|
#t
|
|
#\b
|
|
(+ 1 2)
|
|
8
|
|
symbols
|
|
#\d
|
|
6
|
|
(+ 4 (+ 1 1))
|
|
#t
|
|
0
|
|
(#\d #\d (+ 4 5))
|
|
6
|
|
symbols
|
|
#t
|
|
#\d
|
|
(+ 1 2)
|
|
0
|
|
((+ 4 5) #t these)
|
|
(are symbols #t)
|
|
#\c
|
|
(these are (+ 4 (+ 1 1)))))
|
|
(mytest
|
|
(match-letrec
|
|
(((list
|
|
(struct test-struct (tlp1097 (list) (vector tlp1098 ___) (list)))
|
|
(and (? test-struct? tlp1119)
|
|
(app test-struct-a (list tlp1100 tlp1101 tlp1102 #\a))
|
|
(app
|
|
test-struct-b
|
|
(and (? test-struct? tlp1107)
|
|
(app test-struct-a (list-rest tlp1103 tlp1104 tlp1105 8))
|
|
(app test-struct-b _)
|
|
(app test-struct-c (or '(+ 4 (+ 1 1)) '(+ 4 (+ 1 1))))
|
|
(app test-struct-d _)))
|
|
(app test-struct-c tlp1108)
|
|
(app
|
|
test-struct-d
|
|
(box
|
|
(list
|
|
(list tlp1109 tlp1110 tlp1111 tlp1112)
|
|
(list tlp1113 ..3)
|
|
(list tlp1114 tlp1115 tlp1116 tlp1117)))))
|
|
(and (? test-struct? tlp1142)
|
|
(app
|
|
test-struct-a
|
|
(list
|
|
(list)
|
|
tlp1120
|
|
(struct test-struct (tlp1121 tlp1122 tlp1123 tlp1124))
|
|
(vector tlp1126 tlp1127 tlp1128 tlp1129)))
|
|
(app
|
|
test-struct-b
|
|
(and (? test-struct? tlp1140)
|
|
(app test-struct-a _)
|
|
(app
|
|
test-struct-b
|
|
(or (list-rest tlp1130 tlp1131 tlp1132 tlp1133)
|
|
(list-rest tlp1130 tlp1131 tlp1132 tlp1133)))
|
|
(app test-struct-c tlp1134)
|
|
(app
|
|
test-struct-d
|
|
(vector tlp1135 tlp1136 tlp1137 tlp1138))))
|
|
(app test-struct-c (list))
|
|
(app test-struct-d (not (not 5))))
|
|
(and (? number? tlp1143) (? even? tlp1144)))
|
|
`(,inst-struct-name1099
|
|
,inst-struct-name1118
|
|
,inst-struct-name1141
|
|
12))
|
|
((list
|
|
'(+ 1 2)
|
|
'symbols
|
|
_
|
|
(struct
|
|
test-struct
|
|
((list
|
|
(list tlp1145 tlp1146 tlp1147 tlp1148)
|
|
(vector tlp1149 ___)
|
|
(and (? number? tlp1150) (? even? tlp1151))
|
|
(list tlp1152 __3))
|
|
2
|
|
(list-rest (list tlp1153 ___) (vector tlp1154 ___) 'symbols 0)
|
|
tlp1155)))
|
|
`((+ 1 2) symbols 5 ,inst-struct-name1156))
|
|
((list
|
|
(list-rest
|
|
(list-rest
|
|
#\c
|
|
(struct test-struct (tlp1157 tlp1158 tlp1159 tlp1160))
|
|
(and (list-rest tlp1162 tlp1163 tlp1164 tlp1165)
|
|
(list-rest tlp1166 tlp1167 tlp1168 tlp1169))
|
|
#\b)
|
|
(struct
|
|
test-struct
|
|
((and (and (? test-struct? tlp1175)
|
|
(app test-struct-a tlp1170)
|
|
(app test-struct-b tlp1171)
|
|
(app test-struct-c tlp1172)
|
|
(app test-struct-d tlp1173))
|
|
(and (? test-struct? tlp1176)
|
|
(app test-struct-a tlp1177)
|
|
(app test-struct-b tlp1178)
|
|
(app test-struct-c tlp1179)
|
|
(app test-struct-d tlp1180)))
|
|
tlp1181
|
|
(and tlp1182 tlp1183)
|
|
(box (list tlp1184 tlp1185 tlp1186))))
|
|
(or _ _)
|
|
#\a)
|
|
(list
|
|
_
|
|
(and (? number? tlp1188) (? even? tlp1189))
|
|
(list)
|
|
(and (? test-struct? tlp1199)
|
|
(app test-struct-a (list tlp1190 ..3))
|
|
(app test-struct-b (vector tlp1191 tlp1192 tlp1193 tlp1194))
|
|
(app test-struct-c #f)
|
|
(app test-struct-d (box (list tlp1195 tlp1196 tlp1197)))))
|
|
(and (? number? tlp1200) (? even? tlp1201))
|
|
'(+ 4 5))
|
|
`(((#\c ,inst-struct-name1161 (#\a are 4 . #t) . #\b)
|
|
,inst-struct-name1187
|
|
(+ 1 2)
|
|
.
|
|
#\a)
|
|
(#\b 6 () ,inst-struct-name1198)
|
|
0
|
|
(+ 4 5))))
|
|
(list
|
|
tlp1097
|
|
tlp1098
|
|
tlp1100
|
|
tlp1101
|
|
tlp1102
|
|
tlp1103
|
|
tlp1104
|
|
tlp1105
|
|
tlp1108
|
|
tlp1109
|
|
tlp1110
|
|
tlp1111
|
|
tlp1112
|
|
tlp1113
|
|
tlp1114
|
|
tlp1115
|
|
tlp1116
|
|
tlp1117
|
|
tlp1120
|
|
tlp1121
|
|
tlp1122
|
|
tlp1123
|
|
tlp1124
|
|
tlp1126
|
|
tlp1127
|
|
tlp1128
|
|
tlp1129
|
|
tlp1130
|
|
tlp1131
|
|
tlp1132
|
|
tlp1133
|
|
tlp1130
|
|
tlp1131
|
|
tlp1132
|
|
tlp1133
|
|
tlp1134
|
|
tlp1135
|
|
tlp1136
|
|
tlp1137
|
|
tlp1138
|
|
tlp1143
|
|
tlp1145
|
|
tlp1146
|
|
tlp1147
|
|
tlp1148
|
|
tlp1149
|
|
tlp1150
|
|
tlp1152
|
|
tlp1153
|
|
tlp1154
|
|
tlp1155
|
|
tlp1157
|
|
tlp1158
|
|
tlp1159
|
|
tlp1160
|
|
tlp1162
|
|
tlp1163
|
|
tlp1164
|
|
tlp1165
|
|
tlp1170
|
|
tlp1171
|
|
tlp1172
|
|
tlp1173
|
|
tlp1181
|
|
tlp1182
|
|
tlp1184
|
|
tlp1185
|
|
tlp1186
|
|
tlp1188
|
|
tlp1190
|
|
tlp1191
|
|
tlp1192
|
|
tlp1193
|
|
tlp1194
|
|
tlp1195
|
|
tlp1196
|
|
tlp1197
|
|
tlp1200))
|
|
'(8
|
|
(#\d (+ 1 2) 9)
|
|
(+ 4 (+ 1 1))
|
|
these
|
|
#\d
|
|
#\c
|
|
5
|
|
#\a
|
|
#\a
|
|
are
|
|
#\c
|
|
#t
|
|
(+ 4 5)
|
|
(#\b 0 #\c)
|
|
1
|
|
are
|
|
(+ 1 2)
|
|
(+ 4 (+ 1 1))
|
|
these
|
|
#\b
|
|
(+ 4 5)
|
|
#\c
|
|
these
|
|
6
|
|
1
|
|
5
|
|
#\c
|
|
#t
|
|
#\c
|
|
these
|
|
9
|
|
#t
|
|
#\c
|
|
these
|
|
9
|
|
#\a
|
|
9
|
|
(+ 4 (+ 1 1))
|
|
#t
|
|
(+ 1 2)
|
|
12
|
|
#t
|
|
5
|
|
9
|
|
5
|
|
(symbols symbols these)
|
|
14
|
|
(are these are)
|
|
((+ 4 (+ 1 1)) these #f)
|
|
((+ 4 (+ 1 1)) #t #\b)
|
|
are
|
|
#\d
|
|
#\c
|
|
these
|
|
1
|
|
#\a
|
|
are
|
|
4
|
|
#t
|
|
#f
|
|
(+ 4 5)
|
|
#\d
|
|
#f
|
|
#\c
|
|
#\c
|
|
symbols
|
|
2
|
|
#\a
|
|
6
|
|
(#\d #\b #t)
|
|
#f
|
|
(+ 4 5)
|
|
symbols
|
|
(+ 1 2)
|
|
#\d
|
|
8
|
|
3
|
|
0))
|
|
(mytest
|
|
(match-let
|
|
(((list
|
|
#f
|
|
(list tlp1202 ..3)
|
|
(vector tlp1203 ___)
|
|
(list
|
|
(box
|
|
(list _ (box (list tlp1204 tlp1205 tlp1206)) (list tlp1207 ___)))
|
|
(and (? number? tlp1208) (? even? tlp1209))
|
|
(list)
|
|
(and (list tlp1210 ...) (list tlp1211 ...))))
|
|
`(#f
|
|
(these are #\a)
|
|
#3(#\b (+ 4 5) #\c)
|
|
(#&(9 #&(#t #\b #\a) ((+ 4 (+ 1 1)) #\b are)) 18 () (#t #\b #t))))
|
|
((list 'symbols (and (? number? tlp1212) (? even? tlp1213)) #f 'are)
|
|
`(symbols 2 #f are))
|
|
((list
|
|
(and tlp1214 tlp1215)
|
|
(and (? test-struct? tlp1233)
|
|
(app test-struct-a (vector tlp1216 ___))
|
|
(app
|
|
test-struct-b
|
|
(and (? test-struct? tlp1222)
|
|
(app test-struct-a tlp1217)
|
|
(app test-struct-b (not (not 4)))
|
|
(app test-struct-c (list))
|
|
(app
|
|
test-struct-d
|
|
(list-rest tlp1218 tlp1219 tlp1220 #\d))))
|
|
(app test-struct-c (box (list (list) (not (not '(+ 1 2))) (list))))
|
|
(app
|
|
test-struct-d
|
|
(and (? test-struct? tlp1231)
|
|
(app test-struct-a (list))
|
|
(app test-struct-b (vector tlp1223 ...))
|
|
(app test-struct-c tlp1224)
|
|
(app
|
|
test-struct-d
|
|
(struct
|
|
test-struct
|
|
(tlp1225 tlp1226 tlp1227 tlp1228))))))
|
|
(list tlp1234 ___)
|
|
_)
|
|
`((+ 4 5) ,inst-struct-name1232 ((+ 4 5) #t #\c) #\d)))
|
|
(list
|
|
tlp1202
|
|
tlp1203
|
|
tlp1204
|
|
tlp1205
|
|
tlp1206
|
|
tlp1207
|
|
tlp1208
|
|
tlp1210
|
|
tlp1212
|
|
tlp1214
|
|
tlp1216
|
|
tlp1217
|
|
tlp1218
|
|
tlp1219
|
|
tlp1220
|
|
tlp1223
|
|
tlp1224
|
|
tlp1225
|
|
tlp1226
|
|
tlp1227
|
|
tlp1228
|
|
tlp1234))
|
|
'((these are #\a)
|
|
(#\b (+ 4 5) #\c)
|
|
#t
|
|
#\b
|
|
#\a
|
|
((+ 4 (+ 1 1)) #\b are)
|
|
18
|
|
(#t #\b #t)
|
|
2
|
|
(+ 4 5)
|
|
((+ 1 2) #\a 2)
|
|
#\c
|
|
#\d
|
|
#\c
|
|
#\c
|
|
(#\b 0 (+ 4 5))
|
|
#\b
|
|
#\c
|
|
(+ 4 (+ 1 1))
|
|
these
|
|
#f
|
|
((+ 4 5) #t #\c)))
|
|
(mytest
|
|
(match-let*
|
|
(((list
|
|
(and (? test-struct? tlp1239)
|
|
(app test-struct-a (list tlp1235 __3))
|
|
(app test-struct-b tlp1236)
|
|
(app test-struct-c (list))
|
|
(app test-struct-d (list tlp1237 __3)))
|
|
tlp1240
|
|
(list-rest
|
|
(vector tlp1241 ___)
|
|
(or (or (list tlp1242 tlp1243 tlp1244 tlp1245)
|
|
(list tlp1242 tlp1243 tlp1244 tlp1245))
|
|
(or (list tlp1242 tlp1243 tlp1244 tlp1245)
|
|
(list tlp1242 tlp1243 tlp1244 tlp1245)))
|
|
(or (struct
|
|
test-struct
|
|
((box (list tlp1246 tlp1247 tlp1248))
|
|
(list tlp1249 ___)
|
|
(and (? test-struct? tlp1255)
|
|
(app test-struct-a tlp1250)
|
|
(app test-struct-b tlp1251)
|
|
(app test-struct-c tlp1252)
|
|
(app test-struct-d tlp1253))
|
|
(list tlp1256 tlp1257 tlp1258 tlp1259)))
|
|
(struct
|
|
test-struct
|
|
((box (list tlp1246 tlp1247 tlp1248))
|
|
(list tlp1249 ___)
|
|
(and (? test-struct? tlp1255)
|
|
(app test-struct-a tlp1250)
|
|
(app test-struct-b tlp1251)
|
|
(app test-struct-c tlp1252)
|
|
(app test-struct-d tlp1253))
|
|
(list tlp1256 tlp1257 tlp1258 tlp1259))))
|
|
'these)
|
|
(list
|
|
tlp1261
|
|
(not (not #t))
|
|
(box
|
|
(list
|
|
(and (? test-struct? tlp1267)
|
|
(app test-struct-a tlp1262)
|
|
(app test-struct-b tlp1263)
|
|
(app test-struct-c tlp1264)
|
|
(app test-struct-d tlp1265))
|
|
#\d
|
|
(list tlp1268 tlp1269 tlp1270 tlp1271)))
|
|
(list-rest
|
|
(list)
|
|
(list-rest tlp1272 tlp1273 tlp1274 #\c)
|
|
(and (? test-struct? tlp1280)
|
|
(app test-struct-a tlp1275)
|
|
(app test-struct-b tlp1276)
|
|
(app test-struct-c tlp1277)
|
|
(app test-struct-d tlp1278))
|
|
#f)))
|
|
`(,inst-struct-name1238
|
|
1
|
|
(#3(#\c #\c (+ 1 2))
|
|
(#\c #\b (+ 4 (+ 1 1)) #\d)
|
|
,inst-struct-name1260
|
|
.
|
|
these)
|
|
((+ 4 (+ 1 1))
|
|
#t
|
|
#&(,inst-struct-name1266 #\d (symbols #\a #t #\d))
|
|
(() (#t #f #\c . #\c) ,inst-struct-name1279 . #f))))
|
|
((list
|
|
(vector tlp1281 ___)
|
|
tlp1282
|
|
(not (not #\b))
|
|
(or (list tlp1283 ___) (list tlp1283 ___)))
|
|
`(#3((+ 4 5) are #\c) are #\b (#\a #\a symbols)))
|
|
((list
|
|
(list
|
|
(list tlp1284 ..3)
|
|
(list)
|
|
tlp1285
|
|
(box
|
|
(list
|
|
(and (? number? tlp1286) (? even? tlp1287))
|
|
(or (box (list tlp1288 tlp1289 tlp1290))
|
|
(box (list tlp1288 tlp1289 tlp1290)))
|
|
(box (list tlp1291 tlp1292 tlp1293)))))
|
|
(list tlp1294 __3)
|
|
2
|
|
(vector tlp1295 ___))
|
|
`(((are #\c (+ 4 (+ 1 1)))
|
|
()
|
|
#\d
|
|
#&(2 #&(8 (+ 4 5) #\b) #&(are 3 #\a)))
|
|
(3 1 these)
|
|
2
|
|
#3(3 (+ 4 5) #\b))))
|
|
(list
|
|
tlp1235
|
|
tlp1236
|
|
tlp1237
|
|
tlp1240
|
|
tlp1241
|
|
tlp1242
|
|
tlp1243
|
|
tlp1244
|
|
tlp1245
|
|
tlp1246
|
|
tlp1247
|
|
tlp1248
|
|
tlp1249
|
|
tlp1250
|
|
tlp1251
|
|
tlp1252
|
|
tlp1253
|
|
tlp1256
|
|
tlp1257
|
|
tlp1258
|
|
tlp1259
|
|
tlp1261
|
|
tlp1262
|
|
tlp1263
|
|
tlp1264
|
|
tlp1265
|
|
tlp1268
|
|
tlp1269
|
|
tlp1270
|
|
tlp1271
|
|
tlp1272
|
|
tlp1273
|
|
tlp1274
|
|
tlp1275
|
|
tlp1276
|
|
tlp1277
|
|
tlp1278
|
|
tlp1281
|
|
tlp1282
|
|
tlp1283
|
|
tlp1284
|
|
tlp1285
|
|
tlp1286
|
|
tlp1288
|
|
tlp1289
|
|
tlp1290
|
|
tlp1291
|
|
tlp1292
|
|
tlp1293
|
|
tlp1294
|
|
tlp1295))
|
|
'((#f #\c #\c)
|
|
#\b
|
|
(#\d these these)
|
|
1
|
|
(#\c #\c (+ 1 2))
|
|
#\c
|
|
#\b
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
are
|
|
#\c
|
|
#t
|
|
(9 these #\d)
|
|
#\b
|
|
(+ 4 (+ 1 1))
|
|
#f
|
|
(+ 4 5)
|
|
are
|
|
#\b
|
|
(+ 1 2)
|
|
3
|
|
(+ 4 (+ 1 1))
|
|
#t
|
|
#\b
|
|
#t
|
|
#\b
|
|
symbols
|
|
#\a
|
|
#t
|
|
#\d
|
|
#t
|
|
#f
|
|
#\c
|
|
#\d
|
|
#\c
|
|
#\a
|
|
#t
|
|
((+ 4 5) are #\c)
|
|
are
|
|
(#\a #\a symbols)
|
|
(are #\c (+ 4 (+ 1 1)))
|
|
#\d
|
|
2
|
|
8
|
|
(+ 4 5)
|
|
#\b
|
|
are
|
|
3
|
|
#\a
|
|
(3 1 these)
|
|
(3 (+ 4 5) #\b)))
|
|
|
|
|
|
|
|
(let ((tlp1555
|
|
(lambda (tlp1436)
|
|
(match
|
|
tlp1436
|
|
((list
|
|
(struct
|
|
test-struct
|
|
((list tlp1437 ...) (vector tlp1438 ___) #\d 'are))
|
|
(and (struct
|
|
test-struct
|
|
((list tlp1440 ___)
|
|
(list-rest
|
|
(list-rest tlp1441 tlp1442 tlp1443 tlp1444)
|
|
(list)
|
|
(and (? number? tlp1445) (? even? tlp1446))
|
|
#t)
|
|
(list
|
|
(list-rest tlp1447 tlp1448 tlp1449 tlp1450)
|
|
tlp1451
|
|
(list-rest tlp1452 tlp1453 tlp1454 tlp1455)
|
|
(and (? test-struct? tlp1461)
|
|
(app test-struct-a tlp1456)
|
|
(app test-struct-b tlp1457)
|
|
(app test-struct-c tlp1458)
|
|
(app test-struct-d tlp1459)))
|
|
(box
|
|
(list
|
|
(and (? number? tlp1462) (? even? tlp1463))
|
|
tlp1464
|
|
(or tlp1465 tlp1465)))))
|
|
(struct
|
|
test-struct
|
|
((list tlp1467 ___)
|
|
(list-rest
|
|
(list-rest tlp1468 tlp1469 tlp1470 tlp1471)
|
|
(list)
|
|
(and (? number? tlp1472) (? even? tlp1473))
|
|
#t)
|
|
(list
|
|
(list-rest tlp1474 tlp1475 tlp1476 tlp1477)
|
|
tlp1478
|
|
(list-rest tlp1479 tlp1480 tlp1481 tlp1482)
|
|
(and (? test-struct? tlp1483)
|
|
(app test-struct-a tlp1484)
|
|
(app test-struct-b tlp1485)
|
|
(app test-struct-c tlp1486)
|
|
(app test-struct-d tlp1487)))
|
|
(box
|
|
(list
|
|
(and (? number? tlp1488) (? even? tlp1489))
|
|
tlp1490
|
|
(or tlp1491 tlp1491))))))
|
|
(vector tlp1492 ...)
|
|
(vector
|
|
(box (list _ (vector tlp1493 ___) tlp1494))
|
|
(not (not #\b))
|
|
(and (? test-struct? tlp1503)
|
|
(app test-struct-a (and _ _))
|
|
(app test-struct-b (and (list) (list)))
|
|
(app
|
|
test-struct-c
|
|
(box (list tlp1495 tlp1496 tlp1497)))
|
|
(app
|
|
test-struct-d
|
|
(vector tlp1498 tlp1499 tlp1500 tlp1501)))
|
|
_))
|
|
(list
|
|
tlp1437
|
|
tlp1438
|
|
tlp1440
|
|
tlp1441
|
|
tlp1442
|
|
tlp1443
|
|
tlp1444
|
|
tlp1445
|
|
tlp1447
|
|
tlp1448
|
|
tlp1449
|
|
tlp1450
|
|
tlp1451
|
|
tlp1452
|
|
tlp1453
|
|
tlp1454
|
|
tlp1455
|
|
tlp1456
|
|
tlp1457
|
|
tlp1458
|
|
tlp1459
|
|
tlp1462
|
|
tlp1464
|
|
tlp1465
|
|
tlp1492
|
|
tlp1493
|
|
tlp1494
|
|
tlp1495
|
|
tlp1496
|
|
tlp1497
|
|
tlp1498
|
|
tlp1499
|
|
tlp1500
|
|
tlp1501))
|
|
((list
|
|
(and (vector
|
|
(and (? test-struct? tlp1509)
|
|
(app test-struct-a #\c)
|
|
(app test-struct-b _)
|
|
(app
|
|
test-struct-c
|
|
(list-rest tlp1504 tlp1505 tlp1506 tlp1507))
|
|
(app test-struct-d (list)))
|
|
tlp1510
|
|
(list tlp1511 __3)
|
|
#\a)
|
|
(vector
|
|
(and (? test-struct? tlp1512)
|
|
(app test-struct-a #\c)
|
|
(app test-struct-b _)
|
|
(app
|
|
test-struct-c
|
|
(list-rest tlp1513 tlp1514 tlp1515 tlp1516))
|
|
(app test-struct-d (list)))
|
|
tlp1517
|
|
(list tlp1518 __3)
|
|
#\a))
|
|
_
|
|
(struct
|
|
test-struct
|
|
((struct test-struct (#t #\b #\d (or 6 6)))
|
|
(and (? number? tlp1520) (? even? tlp1521))
|
|
(or (struct
|
|
test-struct
|
|
((list-rest tlp1522 tlp1523 tlp1524 tlp1525)
|
|
(list-rest tlp1526 tlp1527 tlp1528 tlp1529)
|
|
(not (not '(+ 1 2)))
|
|
(and (? test-struct? tlp1535)
|
|
(app test-struct-a tlp1530)
|
|
(app test-struct-b tlp1531)
|
|
(app test-struct-c tlp1532)
|
|
(app test-struct-d tlp1533))))
|
|
(struct
|
|
test-struct
|
|
((list-rest tlp1522 tlp1523 tlp1524 tlp1525)
|
|
(list-rest tlp1526 tlp1527 tlp1528 tlp1529)
|
|
(not (not '(+ 1 2)))
|
|
(and (? test-struct? tlp1535)
|
|
(app test-struct-a tlp1530)
|
|
(app test-struct-b tlp1531)
|
|
(app test-struct-c tlp1532)
|
|
(app test-struct-d tlp1533)))))
|
|
tlp1537))
|
|
(and (list
|
|
(vector tlp1539 ...)
|
|
#\b
|
|
(struct test-struct (tlp1540 3 tlp1541 tlp1542))
|
|
(list tlp1544 ..3))
|
|
(list
|
|
(vector tlp1545 ...)
|
|
#\b
|
|
(struct test-struct (tlp1546 3 tlp1547 tlp1548))
|
|
(list tlp1549 ..3))))
|
|
(list
|
|
tlp1504
|
|
tlp1505
|
|
tlp1506
|
|
tlp1507
|
|
tlp1510
|
|
tlp1511
|
|
tlp1520
|
|
tlp1522
|
|
tlp1523
|
|
tlp1524
|
|
tlp1525
|
|
tlp1526
|
|
tlp1527
|
|
tlp1528
|
|
tlp1529
|
|
tlp1530
|
|
tlp1531
|
|
tlp1532
|
|
tlp1533
|
|
tlp1537
|
|
tlp1539
|
|
tlp1540
|
|
tlp1541
|
|
tlp1542
|
|
tlp1544))
|
|
((list
|
|
(and tlp1550 tlp1551)
|
|
(list tlp1552 __3)
|
|
(list tlp1553 ___)
|
|
(list tlp1554 ...))
|
|
(list tlp1550 tlp1552 tlp1553 tlp1554))))))
|
|
(list
|
|
(mytest
|
|
(tlp1555
|
|
`(,inst-struct-name1439
|
|
,inst-struct-name1466
|
|
#3(#\a #\b (+ 4 (+ 1 1)))
|
|
#4(#&(#t #3((+ 1 2) #f symbols) 2)
|
|
#\b
|
|
,inst-struct-name1502
|
|
(+ 4 (+ 1 1)))))
|
|
'((#t 8 #f)
|
|
(#\a are 3)
|
|
(#\a 4 #t)
|
|
#\a
|
|
(+ 1 2)
|
|
7
|
|
#\d
|
|
0
|
|
#f
|
|
#\a
|
|
#\b
|
|
#\a
|
|
are
|
|
2
|
|
symbols
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
#f
|
|
#\d
|
|
5
|
|
#\b
|
|
2
|
|
#\b
|
|
#\b
|
|
(#\a #\b (+ 4 (+ 1 1)))
|
|
((+ 1 2) #f symbols)
|
|
2
|
|
2
|
|
are
|
|
8
|
|
these
|
|
#\c
|
|
#\a
|
|
#\a))
|
|
(mytest
|
|
(tlp1555
|
|
`(#4(,inst-struct-name1508 #f (#\c symbols 9) #\a)
|
|
#f
|
|
,inst-struct-name1538
|
|
(#3(#\b are (+ 4 (+ 1 1)))
|
|
#\b
|
|
,inst-struct-name1543
|
|
(#f #\c #\d))))
|
|
'(#t
|
|
(+ 4 (+ 1 1))
|
|
#\c
|
|
symbols
|
|
#f
|
|
(#\c symbols 9)
|
|
2
|
|
#\d
|
|
#f
|
|
0
|
|
#\d
|
|
are
|
|
are
|
|
#\c
|
|
#\b
|
|
these
|
|
#\b
|
|
#\c
|
|
are
|
|
(+ 4 5)
|
|
(#\b are (+ 4 (+ 1 1)))
|
|
2
|
|
#\d
|
|
(+ 4 5)
|
|
(#f #\c #\d)))
|
|
(mytest
|
|
(tlp1555 `(#t (#\c 8 #\a) (#\d #\b #\d) (#\d symbols 8)))
|
|
'(#t (#\c 8 #\a) (#\d #\b #\d) (#\d symbols 8)))))
|
|
(let ((tlp1668
|
|
(lambda (tlp1556)
|
|
(match
|
|
tlp1556
|
|
((list
|
|
(vector
|
|
(and (? test-struct? tlp1564)
|
|
(app test-struct-a '(+ 4 (+ 1 1)))
|
|
(app
|
|
test-struct-b
|
|
(and (? test-struct? tlp1562)
|
|
(app test-struct-a tlp1557)
|
|
(app test-struct-b tlp1558)
|
|
(app test-struct-c tlp1559)
|
|
(app test-struct-d tlp1560)))
|
|
(app test-struct-c '(+ 4 5))
|
|
(app test-struct-d (not (not 3))))
|
|
(and (box
|
|
(list
|
|
(box (list tlp1565 tlp1566 tlp1567))
|
|
(struct
|
|
test-struct
|
|
(tlp1568 tlp1569 tlp1570 tlp1571))
|
|
(struct
|
|
test-struct
|
|
(tlp1573 tlp1574 tlp1575 tlp1576))))
|
|
(box
|
|
(list
|
|
(box (list tlp1578 tlp1579 tlp1580))
|
|
(struct
|
|
test-struct
|
|
(tlp1581 tlp1582 tlp1583 tlp1584))
|
|
(struct
|
|
test-struct
|
|
(tlp1585 tlp1586 tlp1587 tlp1588)))))
|
|
(or (list-rest
|
|
(or tlp1589 tlp1589)
|
|
(and (? test-struct? tlp1595)
|
|
(app test-struct-a tlp1590)
|
|
(app test-struct-b tlp1591)
|
|
(app test-struct-c tlp1592)
|
|
(app test-struct-d tlp1593))
|
|
(vector tlp1596 tlp1597 tlp1598 tlp1599)
|
|
#t)
|
|
(list-rest
|
|
(or tlp1589 tlp1589)
|
|
(and (? test-struct? tlp1595)
|
|
(app test-struct-a tlp1590)
|
|
(app test-struct-b tlp1591)
|
|
(app test-struct-c tlp1592)
|
|
(app test-struct-d tlp1593))
|
|
(vector tlp1596 tlp1597 tlp1598 tlp1599)
|
|
#t))
|
|
(and (? test-struct? tlp1610)
|
|
(app test-struct-a (list tlp1600 ...))
|
|
(app test-struct-b (list tlp1601 ...))
|
|
(app
|
|
test-struct-c
|
|
(list tlp1602 tlp1603 tlp1604 tlp1605))
|
|
(app
|
|
test-struct-d
|
|
(list-rest tlp1606 tlp1607 tlp1608 #\b))))
|
|
(list
|
|
(and (? number? tlp1611) (? even? tlp1612))
|
|
(or (and (? number? tlp1613) (? even? tlp1614))
|
|
(and (? number? tlp1613) (? even? tlp1614)))
|
|
(box
|
|
(list
|
|
(struct test-struct (tlp1615 tlp1616 tlp1617 tlp1618))
|
|
(and (? number? tlp1620) (? even? tlp1621))
|
|
#f))
|
|
(and (? number? tlp1622) (? even? tlp1623)))
|
|
_
|
|
(list))
|
|
(list
|
|
tlp1557
|
|
tlp1558
|
|
tlp1559
|
|
tlp1560
|
|
tlp1565
|
|
tlp1566
|
|
tlp1567
|
|
tlp1568
|
|
tlp1569
|
|
tlp1570
|
|
tlp1571
|
|
tlp1573
|
|
tlp1574
|
|
tlp1575
|
|
tlp1576
|
|
tlp1589
|
|
tlp1590
|
|
tlp1591
|
|
tlp1592
|
|
tlp1593
|
|
tlp1596
|
|
tlp1597
|
|
tlp1598
|
|
tlp1599
|
|
tlp1589
|
|
tlp1590
|
|
tlp1591
|
|
tlp1592
|
|
tlp1593
|
|
tlp1596
|
|
tlp1597
|
|
tlp1598
|
|
tlp1599
|
|
tlp1600
|
|
tlp1601
|
|
tlp1602
|
|
tlp1603
|
|
tlp1604
|
|
tlp1605
|
|
tlp1606
|
|
tlp1607
|
|
tlp1608
|
|
tlp1611
|
|
tlp1613
|
|
tlp1615
|
|
tlp1616
|
|
tlp1617
|
|
tlp1618
|
|
tlp1620
|
|
tlp1622))
|
|
((list
|
|
(box
|
|
(list
|
|
(list-rest
|
|
(vector tlp1624 tlp1625 tlp1626 tlp1627)
|
|
tlp1628
|
|
_
|
|
#t)
|
|
(list tlp1629 ___)
|
|
(list
|
|
(vector tlp1630 ___)
|
|
(and (? test-struct? tlp1636)
|
|
(app test-struct-a tlp1631)
|
|
(app test-struct-b tlp1632)
|
|
(app test-struct-c tlp1633)
|
|
(app test-struct-d tlp1634))
|
|
tlp1637
|
|
tlp1638)))
|
|
(list tlp1639 ..3)
|
|
(list-rest _ (list tlp1640 __3) _ #t)
|
|
(box
|
|
(list
|
|
tlp1641
|
|
#t
|
|
(vector
|
|
(and (? number? tlp1642) (? even? tlp1643))
|
|
(list)
|
|
#\a
|
|
(box (list tlp1644 tlp1645 tlp1646))))))
|
|
(list
|
|
tlp1624
|
|
tlp1625
|
|
tlp1626
|
|
tlp1627
|
|
tlp1628
|
|
tlp1629
|
|
tlp1630
|
|
tlp1631
|
|
tlp1632
|
|
tlp1633
|
|
tlp1634
|
|
tlp1637
|
|
tlp1638
|
|
tlp1639
|
|
tlp1640
|
|
tlp1641
|
|
tlp1642
|
|
tlp1644
|
|
tlp1645
|
|
tlp1646))
|
|
((list
|
|
(list
|
|
(and (list-rest
|
|
(not (not 'symbols))
|
|
_
|
|
(list-rest tlp1647 tlp1648 tlp1649 tlp1650)
|
|
0)
|
|
(list-rest
|
|
(not (not 'symbols))
|
|
_
|
|
(list-rest tlp1651 tlp1652 tlp1653 tlp1654)
|
|
0))
|
|
_
|
|
(struct
|
|
test-struct
|
|
((list-rest tlp1655 tlp1656 tlp1657 #f)
|
|
(list tlp1658 ...)
|
|
(and (? test-struct? tlp1664)
|
|
(app test-struct-a tlp1659)
|
|
(app test-struct-b tlp1660)
|
|
(app test-struct-c tlp1661)
|
|
(app test-struct-d tlp1662))
|
|
(list tlp1665 ___)))
|
|
(vector _ (and _ _) (not (not 6)) _))
|
|
(list tlp1667 __3)
|
|
(or 9 9)
|
|
'(+ 4 5))
|
|
(list
|
|
tlp1647
|
|
tlp1648
|
|
tlp1649
|
|
tlp1650
|
|
tlp1655
|
|
tlp1656
|
|
tlp1657
|
|
tlp1658
|
|
tlp1659
|
|
tlp1660
|
|
tlp1661
|
|
tlp1662
|
|
tlp1665
|
|
tlp1667))))))
|
|
(list
|
|
(mytest
|
|
(tlp1668
|
|
`(#4(,inst-struct-name1563
|
|
#&(#&(#\c (+ 4 (+ 1 1)) these)
|
|
,inst-struct-name1572
|
|
,inst-struct-name1577)
|
|
(4 ,inst-struct-name1594 #4(#t #\d these #\c) . #t)
|
|
,inst-struct-name1609)
|
|
(0 10 #&(,inst-struct-name1619 2 #f) 2)
|
|
are
|
|
()))
|
|
'(#f
|
|
symbols
|
|
#\b
|
|
#t
|
|
#\c
|
|
(+ 4 (+ 1 1))
|
|
these
|
|
(+ 1 2)
|
|
#\a
|
|
#\b
|
|
#\d
|
|
#\b
|
|
#\b
|
|
#\b
|
|
4
|
|
4
|
|
#f
|
|
are
|
|
#\b
|
|
#f
|
|
#t
|
|
#\d
|
|
these
|
|
#\c
|
|
4
|
|
#f
|
|
are
|
|
#\b
|
|
#f
|
|
#t
|
|
#\d
|
|
these
|
|
#\c
|
|
(symbols (+ 1 2) #\d)
|
|
(#\c symbols are)
|
|
are
|
|
are
|
|
#\c
|
|
(+ 1 2)
|
|
symbols
|
|
#\d
|
|
(+ 1 2)
|
|
0
|
|
10
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
#\c
|
|
#t
|
|
2
|
|
2))
|
|
(mytest
|
|
(tlp1668
|
|
`(#&((#4(#\c symbols #\a 8) #\b #f . #t)
|
|
((+ 4 (+ 1 1)) (+ 4 5) #\c)
|
|
(#3(#\d (+ 4 5) 8) ,inst-struct-name1635 7 #t))
|
|
(3 7 #\d)
|
|
(#\b (#\b (+ 1 2) #f) #f . #t)
|
|
#&(#\a #t #4(10 () #\a #&(symbols symbols 7)))))
|
|
'(#\c
|
|
symbols
|
|
#\a
|
|
8
|
|
#\b
|
|
((+ 4 (+ 1 1)) (+ 4 5) #\c)
|
|
(#\d (+ 4 5) 8)
|
|
#\b
|
|
#\d
|
|
(+ 4 (+ 1 1))
|
|
#\c
|
|
7
|
|
#t
|
|
(3 7 #\d)
|
|
(#\b (+ 1 2) #f)
|
|
#\a
|
|
10
|
|
symbols
|
|
symbols
|
|
7))
|
|
(mytest
|
|
(tlp1668
|
|
`(((symbols #\d (symbols #\d are . 8) . 0)
|
|
#\b
|
|
,inst-struct-name1666
|
|
#4(#f #\d 6 #\c))
|
|
(#\c are (+ 1 2))
|
|
9
|
|
(+ 4 5)))
|
|
'(symbols
|
|
#\d
|
|
are
|
|
8
|
|
#\c
|
|
these
|
|
symbols
|
|
(4 5 #f)
|
|
#f
|
|
#\a
|
|
#f
|
|
(+ 1 2)
|
|
(#f (+ 4 5) (+ 4 5))
|
|
(#\c are (+ 1 2))))))
|
|
(let ((tlp1713
|
|
(lambda (tlp1669)
|
|
(match
|
|
tlp1669
|
|
((list
|
|
(box (list (list) (list) (list tlp1670 __3)))
|
|
(not (not '(+ 1 2)))
|
|
(box
|
|
(list
|
|
'symbols
|
|
(vector
|
|
(or (list tlp1671 tlp1672 tlp1673 tlp1674)
|
|
(list tlp1671 tlp1672 tlp1673 tlp1674))
|
|
tlp1675
|
|
(vector tlp1676 ...)
|
|
(list tlp1677 tlp1678 tlp1679 tlp1680))
|
|
tlp1681))
|
|
(box
|
|
(list
|
|
(vector tlp1682 #f #\a _)
|
|
(vector
|
|
(and (? test-struct? tlp1688)
|
|
(app test-struct-a tlp1683)
|
|
(app test-struct-b tlp1684)
|
|
(app test-struct-c tlp1685)
|
|
(app test-struct-d tlp1686))
|
|
_
|
|
(list tlp1689 __3)
|
|
(box (list tlp1690 tlp1691 tlp1692)))
|
|
(list))))
|
|
(list
|
|
tlp1670
|
|
tlp1671
|
|
tlp1672
|
|
tlp1673
|
|
tlp1674
|
|
tlp1675
|
|
tlp1676
|
|
tlp1677
|
|
tlp1678
|
|
tlp1679
|
|
tlp1680
|
|
tlp1681
|
|
tlp1682
|
|
tlp1683
|
|
tlp1684
|
|
tlp1685
|
|
tlp1686
|
|
tlp1689
|
|
tlp1690
|
|
tlp1691
|
|
tlp1692))
|
|
((list
|
|
(struct
|
|
test-struct
|
|
((vector
|
|
(vector tlp1693 tlp1694 tlp1695 tlp1696)
|
|
(list tlp1697 __3)
|
|
(not (not #\c))
|
|
tlp1698)
|
|
(vector tlp1699 ___)
|
|
(list tlp1700 ..3)
|
|
#\b))
|
|
(struct
|
|
test-struct
|
|
(tlp1702
|
|
(vector
|
|
(list)
|
|
(box (list tlp1703 tlp1704 tlp1705))
|
|
(or (list) (list))
|
|
tlp1706)
|
|
_
|
|
tlp1707))
|
|
#t
|
|
tlp1709)
|
|
(list
|
|
tlp1693
|
|
tlp1694
|
|
tlp1695
|
|
tlp1696
|
|
tlp1697
|
|
tlp1698
|
|
tlp1699
|
|
tlp1700
|
|
tlp1702
|
|
tlp1703
|
|
tlp1704
|
|
tlp1705
|
|
tlp1706
|
|
tlp1707
|
|
tlp1709))
|
|
((list tlp1710 (vector tlp1711 ___) _ tlp1712)
|
|
(list tlp1710 tlp1711 tlp1712))))))
|
|
(list
|
|
(mytest
|
|
(tlp1713
|
|
`(#&(() () (#f are #\d))
|
|
(+ 1 2)
|
|
#&(symbols
|
|
#4((#\a 3 (+ 1 2) 3)
|
|
(+ 4 5)
|
|
#3(#f #\c 2)
|
|
(#t (+ 4 5) (+ 4 (+ 1 1)) symbols))
|
|
these)
|
|
#&(#4(#t #f #\a #f)
|
|
#4(,inst-struct-name1687 8 (3 5 #\d) #&(#\d 8 #\a))
|
|
())))
|
|
'((#f are #\d)
|
|
#\a
|
|
3
|
|
(+ 1 2)
|
|
3
|
|
(+ 4 5)
|
|
(#f #\c 2)
|
|
#t
|
|
(+ 4 5)
|
|
(+ 4 (+ 1 1))
|
|
symbols
|
|
these
|
|
#t
|
|
symbols
|
|
are
|
|
1
|
|
are
|
|
(3 5 #\d)
|
|
#\d
|
|
8
|
|
#\a))
|
|
(mytest
|
|
(tlp1713 `(,inst-struct-name1701 ,inst-struct-name1708 #t #\c))
|
|
'(these
|
|
#\d
|
|
these
|
|
symbols
|
|
(are 6 these)
|
|
#\d
|
|
(#f 8 (+ 4 5))
|
|
(#\b are symbols)
|
|
(+ 1 2)
|
|
(+ 4 5)
|
|
#\a
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
#\a
|
|
#\c))
|
|
(mytest (tlp1713 `(#f #3(9 (+ 4 5) 9) #t #\d)) '(#f (9 (+ 4 5) 9) #\d))))
|
|
(let ((tlp1746
|
|
(lambda (tlp1714)
|
|
(match
|
|
tlp1714
|
|
((list
|
|
(list-rest
|
|
(list)
|
|
(and (? test-struct? tlp1720)
|
|
(app
|
|
test-struct-a
|
|
(box (list tlp1715 tlp1716 tlp1717)))
|
|
(app test-struct-b _)
|
|
(app test-struct-c 0)
|
|
(app test-struct-d tlp1718))
|
|
(not (not '(+ 4 5)))
|
|
8)
|
|
'(+ 4 (+ 1 1))
|
|
(and (? number? tlp1721) (? even? tlp1722))
|
|
(vector
|
|
(and (? number? tlp1723) (? even? tlp1724))
|
|
_
|
|
(box
|
|
(list
|
|
(not (not '(+ 4 (+ 1 1))))
|
|
(not (not #t))
|
|
(list tlp1725 ___)))
|
|
(not (not '(+ 1 2)))))
|
|
(list
|
|
tlp1715
|
|
tlp1716
|
|
tlp1717
|
|
tlp1718
|
|
tlp1721
|
|
tlp1723
|
|
tlp1725))
|
|
((list
|
|
_
|
|
(box (list (list tlp1726 ...) tlp1727 (list)))
|
|
tlp1728
|
|
'(+ 4 5))
|
|
(list tlp1726 tlp1727 tlp1728))
|
|
((list
|
|
tlp1729
|
|
#\a
|
|
(vector
|
|
(and (? number? tlp1730) (? even? tlp1731))
|
|
(list-rest
|
|
'(+ 1 2)
|
|
(list tlp1732 tlp1733 tlp1734 tlp1735)
|
|
(list tlp1736 __3)
|
|
#\b)
|
|
(list-rest
|
|
(and (? test-struct? tlp1742)
|
|
(app test-struct-a tlp1737)
|
|
(app test-struct-b tlp1738)
|
|
(app test-struct-c tlp1739)
|
|
(app test-struct-d tlp1740))
|
|
(list)
|
|
(box (list tlp1743 tlp1744 tlp1745))
|
|
'these)
|
|
(list))
|
|
#f)
|
|
(list
|
|
tlp1729
|
|
tlp1730
|
|
tlp1732
|
|
tlp1733
|
|
tlp1734
|
|
tlp1735
|
|
tlp1736
|
|
tlp1737
|
|
tlp1738
|
|
tlp1739
|
|
tlp1740
|
|
tlp1743
|
|
tlp1744
|
|
tlp1745))))))
|
|
(list
|
|
(mytest
|
|
(tlp1746
|
|
`((() ,inst-struct-name1719 (+ 4 5) . 8)
|
|
(+ 4 (+ 1 1))
|
|
2
|
|
#4(6 2 #&((+ 4 (+ 1 1)) #t (2 (+ 4 (+ 1 1)) are)) (+ 1 2))))
|
|
'(#\d #t #t (+ 4 (+ 1 1)) 2 6 (2 (+ 4 (+ 1 1)) are)))
|
|
(mytest
|
|
(tlp1746 `(are #&(((+ 4 5) are these) (+ 1 2) ()) are (+ 4 5)))
|
|
'(((+ 4 5) are these) (+ 1 2) are))
|
|
(mytest
|
|
(tlp1746
|
|
`(#\d
|
|
#\a
|
|
#4(4
|
|
((+ 1 2) (4 #t #\b #f) (0 (+ 4 5) these) . #\b)
|
|
(,inst-struct-name1741 () #&(#\d #\c #\a) . these)
|
|
())
|
|
#f))
|
|
'(#\d 4 4 #t #\b #f (0 (+ 4 5) these) these #t 7 #\b #\d #\c #\a))))
|
|
(let ((tlp1820
|
|
(lambda (tlp1747)
|
|
(match
|
|
tlp1747
|
|
((list (vector tlp1748 ...) _ (or _ _) (list tlp1749 __3))
|
|
(list tlp1748 tlp1749))
|
|
((list
|
|
(list tlp1750 ..3)
|
|
(and tlp1751 tlp1752)
|
|
tlp1753
|
|
(list-rest
|
|
tlp1754
|
|
(list (list) tlp1755 (list) (box (list tlp1756 tlp1757 tlp1758)))
|
|
(list-rest
|
|
(list tlp1759 ___)
|
|
(and (? number? tlp1760) (? even? tlp1761))
|
|
(vector tlp1762 tlp1763 tlp1764 tlp1765)
|
|
#t)
|
|
#t))
|
|
(list
|
|
tlp1750
|
|
tlp1751
|
|
tlp1753
|
|
tlp1754
|
|
tlp1755
|
|
tlp1756
|
|
tlp1757
|
|
tlp1758
|
|
tlp1759
|
|
tlp1760
|
|
tlp1762
|
|
tlp1763
|
|
tlp1764
|
|
tlp1765))
|
|
((list
|
|
(and (? test-struct? tlp1777)
|
|
(app test-struct-a tlp1766)
|
|
(app test-struct-b (vector tlp1767 ...))
|
|
(app test-struct-c (vector tlp1768 ___))
|
|
(app
|
|
test-struct-d
|
|
(struct
|
|
test-struct
|
|
((list tlp1769 tlp1770 tlp1771 tlp1772)
|
|
(list tlp1773 ___)
|
|
tlp1774
|
|
#t))))
|
|
tlp1778
|
|
(and (? test-struct? tlp1798)
|
|
(app
|
|
test-struct-a
|
|
(list
|
|
(list-rest tlp1779 tlp1780 tlp1781 #\a)
|
|
(and (? test-struct? tlp1787)
|
|
(app test-struct-a tlp1782)
|
|
(app test-struct-b tlp1783)
|
|
(app test-struct-c tlp1784)
|
|
(app test-struct-d tlp1785))
|
|
(list tlp1788 ___)
|
|
(box (list tlp1789 tlp1790 tlp1791))))
|
|
(app test-struct-b (or '(+ 4 5) '(+ 4 5)))
|
|
(app
|
|
test-struct-c
|
|
(struct
|
|
test-struct
|
|
(tlp1792 (vector tlp1793 ...) tlp1794 tlp1795)))
|
|
(app test-struct-d _))
|
|
(and (? test-struct? tlp1819)
|
|
(app
|
|
test-struct-a
|
|
(box
|
|
(list
|
|
tlp1799
|
|
(list tlp1800 ..3)
|
|
(and tlp1801 tlp1802))))
|
|
(app
|
|
test-struct-b
|
|
(and (? test-struct? tlp1814)
|
|
(app
|
|
test-struct-a
|
|
(list tlp1803 tlp1804 tlp1805 tlp1806))
|
|
(app
|
|
test-struct-b
|
|
(vector tlp1807 tlp1808 tlp1809 tlp1810))
|
|
(app
|
|
test-struct-c
|
|
(and (or tlp1811 tlp1811) (or tlp1812 tlp1812)))
|
|
(app test-struct-d (or (list) (list)))))
|
|
(app test-struct-c (box (list tlp1815 (list) tlp1816)))
|
|
(app test-struct-d (vector tlp1817 ...))))
|
|
(list
|
|
tlp1766
|
|
tlp1767
|
|
tlp1768
|
|
tlp1769
|
|
tlp1770
|
|
tlp1771
|
|
tlp1772
|
|
tlp1773
|
|
tlp1774
|
|
tlp1778
|
|
tlp1779
|
|
tlp1780
|
|
tlp1781
|
|
tlp1782
|
|
tlp1783
|
|
tlp1784
|
|
tlp1785
|
|
tlp1788
|
|
tlp1789
|
|
tlp1790
|
|
tlp1791
|
|
tlp1792
|
|
tlp1793
|
|
tlp1794
|
|
tlp1795
|
|
tlp1799
|
|
tlp1800
|
|
tlp1801
|
|
tlp1803
|
|
tlp1804
|
|
tlp1805
|
|
tlp1806
|
|
tlp1807
|
|
tlp1808
|
|
tlp1809
|
|
tlp1810
|
|
tlp1811
|
|
tlp1815
|
|
tlp1816
|
|
tlp1817))))))
|
|
(list
|
|
(mytest
|
|
(tlp1820 `(#3(#\d symbols #\a) #f 2 (3 #f these)))
|
|
'((#\d symbols #\a) (3 #f these)))
|
|
(mytest
|
|
(tlp1820
|
|
`(((+ 4 (+ 1 1)) #\c 6)
|
|
#\d
|
|
#\b
|
|
(#\d
|
|
(() #\a () #&(symbols are #t))
|
|
((#\b #f 0) 18 #4(0 (+ 4 5) #\d these) . #t)
|
|
.
|
|
#t)))
|
|
'(((+ 4 (+ 1 1)) #\c 6)
|
|
#\d
|
|
#\b
|
|
#\d
|
|
#\a
|
|
symbols
|
|
are
|
|
#t
|
|
(#\b #f 0)
|
|
18
|
|
0
|
|
(+ 4 5)
|
|
#\d
|
|
these))
|
|
(mytest
|
|
(tlp1820
|
|
`(,inst-struct-name1776
|
|
(+ 4 (+ 1 1))
|
|
,inst-struct-name1797
|
|
,inst-struct-name1818))
|
|
'(symbols
|
|
(#\d #\c (+ 4 (+ 1 1)))
|
|
(symbols #\a #\d)
|
|
8
|
|
#f
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
(9 #\c #t)
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
these
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
0
|
|
#\a
|
|
0
|
|
#t
|
|
(#\a #t 7)
|
|
9
|
|
#\b
|
|
symbols
|
|
3
|
|
(#\b #\c 0)
|
|
#t
|
|
(+ 4 5)
|
|
#\a
|
|
(9 #\c symbols)
|
|
#f
|
|
symbols
|
|
#\d
|
|
#\b
|
|
are
|
|
#\d
|
|
(+ 4 (+ 1 1))
|
|
#f
|
|
#\b
|
|
are
|
|
8
|
|
#\d
|
|
(#\a these symbols)))))
|
|
|
|
|
|
|
|
(let ((tlp1951
|
|
(match-lambda
|
|
((list (list tlp1907 ___) (list) 'symbols 'these) (list tlp1907))
|
|
((list
|
|
(list
|
|
#t
|
|
(and (list) (list))
|
|
(and tlp1908 tlp1909)
|
|
(list tlp1910 ___))
|
|
(vector tlp1911 ___)
|
|
(list-rest (not (not #\b)) '(+ 1 2) tlp1912 #\a)
|
|
tlp1913)
|
|
(list tlp1908 tlp1910 tlp1911 tlp1912 tlp1913))
|
|
((list
|
|
(vector
|
|
(and (? test-struct? tlp1920)
|
|
(app test-struct-a tlp1914)
|
|
(app test-struct-b tlp1915)
|
|
(app
|
|
test-struct-c
|
|
(box (list tlp1916 tlp1917 tlp1918)))
|
|
(app test-struct-d #\b))
|
|
(list-rest _ (list tlp1921 tlp1922 tlp1923 tlp1924) #f #\d)
|
|
(and (? test-struct? tlp1936)
|
|
(app
|
|
test-struct-a
|
|
(box (list tlp1925 tlp1926 tlp1927)))
|
|
(app
|
|
test-struct-b
|
|
(list tlp1928 tlp1929 tlp1930 tlp1931))
|
|
(app
|
|
test-struct-c
|
|
(box (list tlp1932 tlp1933 tlp1934)))
|
|
(app test-struct-d _))
|
|
(and (? test-struct? tlp1949)
|
|
(app test-struct-a '(+ 4 5))
|
|
(app
|
|
test-struct-b
|
|
(or (struct
|
|
test-struct
|
|
(tlp1937 tlp1938 tlp1939 tlp1940))
|
|
(struct
|
|
test-struct
|
|
(tlp1937 tlp1938 tlp1939 tlp1940))))
|
|
(app test-struct-c (list tlp1942 __3))
|
|
(app
|
|
test-struct-d
|
|
(struct
|
|
test-struct
|
|
(tlp1943 tlp1944 tlp1945 tlp1946)))))
|
|
#t
|
|
_
|
|
tlp1950)
|
|
(list
|
|
tlp1914
|
|
tlp1915
|
|
tlp1916
|
|
tlp1917
|
|
tlp1918
|
|
tlp1921
|
|
tlp1922
|
|
tlp1923
|
|
tlp1924
|
|
tlp1925
|
|
tlp1926
|
|
tlp1927
|
|
tlp1928
|
|
tlp1929
|
|
tlp1930
|
|
tlp1931
|
|
tlp1932
|
|
tlp1933
|
|
tlp1934
|
|
tlp1937
|
|
tlp1938
|
|
tlp1939
|
|
tlp1940
|
|
tlp1942
|
|
tlp1943
|
|
tlp1944
|
|
tlp1945
|
|
tlp1946
|
|
tlp1950)))))
|
|
(list
|
|
(mytest (tlp1951 `((#\b 5 these) () symbols these)) '((#\b 5 these)))
|
|
(mytest
|
|
(tlp1951
|
|
`((#t () #\d ((+ 1 2) 0 1))
|
|
#3(#\c (+ 1 2) these)
|
|
(#\b (+ 1 2) (+ 4 5) . #\a)
|
|
#\d))
|
|
'(#\d ((+ 1 2) 0 1) (#\c (+ 1 2) these) (+ 4 5) #\d))
|
|
(mytest
|
|
(tlp1951
|
|
`(#4(,inst-struct-name1919
|
|
(#\b ((+ 4 (+ 1 1)) #\d are #t) #f . #\d)
|
|
,inst-struct-name1935
|
|
,inst-struct-name1948)
|
|
#t
|
|
these
|
|
#f))
|
|
'((+ 1 2)
|
|
#\b
|
|
(+ 1 2)
|
|
#\a
|
|
#t
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
are
|
|
#t
|
|
2
|
|
#\c
|
|
#\c
|
|
#f
|
|
0
|
|
6
|
|
#f
|
|
1
|
|
#\a
|
|
symbols
|
|
#\b
|
|
(+ 4 5)
|
|
#f
|
|
are
|
|
(1 #\b (+ 4 5))
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
5
|
|
#\d
|
|
#f))))
|
|
(let ((tlp2015
|
|
(match-lambda
|
|
((list
|
|
(list-rest
|
|
tlp1952
|
|
(or (struct test-struct (2 tlp1953 tlp1954 (list)))
|
|
(struct test-struct (2 tlp1953 tlp1954 (list))))
|
|
(struct
|
|
test-struct
|
|
((vector tlp1956 tlp1957 tlp1958 tlp1959)
|
|
(and (vector tlp1960 ___) (vector tlp1961 ___))
|
|
(or #t #t)
|
|
(list)))
|
|
'these)
|
|
(not (not '(+ 4 (+ 1 1))))
|
|
(vector tlp1963 ___)
|
|
(list))
|
|
(list
|
|
tlp1952
|
|
tlp1953
|
|
tlp1954
|
|
tlp1956
|
|
tlp1957
|
|
tlp1958
|
|
tlp1959
|
|
tlp1960
|
|
tlp1963))
|
|
((list
|
|
(list tlp1964 ..3)
|
|
(or (and (? number? tlp1965) (? even? tlp1966))
|
|
(and (? number? tlp1965) (? even? tlp1966)))
|
|
(and (? test-struct? tlp1978)
|
|
(app test-struct-a tlp1967)
|
|
(app test-struct-b 'symbols)
|
|
(app test-struct-c tlp1968)
|
|
(app
|
|
test-struct-d
|
|
(list-rest
|
|
(vector tlp1969 ...)
|
|
tlp1970
|
|
(and (? test-struct? tlp1976)
|
|
(app test-struct-a tlp1971)
|
|
(app test-struct-b tlp1972)
|
|
(app test-struct-c tlp1973)
|
|
(app test-struct-d tlp1974))
|
|
5)))
|
|
(and (list) (list)))
|
|
(list
|
|
tlp1964
|
|
tlp1965
|
|
tlp1967
|
|
tlp1968
|
|
tlp1969
|
|
tlp1970
|
|
tlp1971
|
|
tlp1972
|
|
tlp1973
|
|
tlp1974))
|
|
((list
|
|
(list)
|
|
tlp1979
|
|
(struct
|
|
test-struct
|
|
((and (? number? tlp1980) (? even? tlp1981))
|
|
(list)
|
|
(and (and (? test-struct? tlp1997)
|
|
(app
|
|
test-struct-a
|
|
(list-rest tlp1982 tlp1983 tlp1984 tlp1985))
|
|
(app
|
|
test-struct-b
|
|
(list-rest tlp1986 tlp1987 tlp1988 tlp1989))
|
|
(app test-struct-c tlp1990)
|
|
(app
|
|
test-struct-d
|
|
(struct
|
|
test-struct
|
|
(tlp1991 tlp1992 tlp1993 tlp1994))))
|
|
(and (? test-struct? tlp1998)
|
|
(app
|
|
test-struct-a
|
|
(list-rest tlp1999 tlp2000 tlp2001 tlp2002))
|
|
(app
|
|
test-struct-b
|
|
(list-rest tlp2003 tlp2004 tlp2005 tlp2006))
|
|
(app test-struct-c tlp2007)
|
|
(app
|
|
test-struct-d
|
|
(struct
|
|
test-struct
|
|
(tlp2008 tlp2009 tlp2010 tlp2011)))))
|
|
(list tlp2012 ..3)))
|
|
tlp2014)
|
|
(list
|
|
tlp1979
|
|
tlp1980
|
|
tlp1982
|
|
tlp1983
|
|
tlp1984
|
|
tlp1985
|
|
tlp1986
|
|
tlp1987
|
|
tlp1988
|
|
tlp1989
|
|
tlp1990
|
|
tlp1991
|
|
tlp1992
|
|
tlp1993
|
|
tlp1994
|
|
tlp2012
|
|
tlp2014)))))
|
|
(list
|
|
(mytest
|
|
(tlp2015
|
|
`((#f ,inst-struct-name1955 ,inst-struct-name1962 . these)
|
|
(+ 4 (+ 1 1))
|
|
#3(#t #\a #\c)
|
|
()))
|
|
'(#f 5 #\c #t are #\b #f (#f #f (+ 4 5)) (#t #\a #\c)))
|
|
(mytest
|
|
(tlp2015 `((these #t #t) 18 ,inst-struct-name1977 ()))
|
|
'((these #t #t)
|
|
18
|
|
symbols
|
|
(+ 4 (+ 1 1))
|
|
(2 (+ 4 5) #\b)
|
|
are
|
|
(+ 1 2)
|
|
(+ 1 2)
|
|
#\c
|
|
#f))
|
|
(mytest
|
|
(tlp2015 `(() (+ 1 2) ,inst-struct-name2013 (+ 4 (+ 1 1))))
|
|
'((+ 1 2)
|
|
18
|
|
#\c
|
|
(+ 4 (+ 1 1))
|
|
2
|
|
#\a
|
|
#\b
|
|
#\c
|
|
(+ 4 (+ 1 1))
|
|
are
|
|
#\b
|
|
#\a
|
|
(+ 4 5)
|
|
8
|
|
8
|
|
(are #\c symbols)
|
|
(+ 4 (+ 1 1))))))
|
|
(let ((tlp2066
|
|
(match-lambda
|
|
((list (not (not #t)) tlp2016 (list) tlp2017)
|
|
(list tlp2016 tlp2017))
|
|
((list
|
|
(list-rest
|
|
(list tlp2018 (not (not '(+ 1 2))) 'are tlp2019)
|
|
(list
|
|
(list tlp2020 tlp2021 tlp2022 tlp2023)
|
|
(and (list-rest tlp2024 tlp2025 tlp2026 tlp2027)
|
|
(list-rest tlp2028 tlp2029 tlp2030 tlp2031))
|
|
(list tlp2032 __3)
|
|
_)
|
|
(and (? number? tlp2033) (? even? tlp2034))
|
|
#\b)
|
|
_
|
|
(list tlp2035 __3)
|
|
#f)
|
|
(list
|
|
tlp2018
|
|
tlp2019
|
|
tlp2020
|
|
tlp2021
|
|
tlp2022
|
|
tlp2023
|
|
tlp2024
|
|
tlp2025
|
|
tlp2026
|
|
tlp2027
|
|
tlp2032
|
|
tlp2033
|
|
tlp2035))
|
|
((list
|
|
(list
|
|
(list tlp2036 ...)
|
|
(and (and (? test-struct? tlp2042)
|
|
(app test-struct-a tlp2037)
|
|
(app test-struct-b 7)
|
|
(app
|
|
test-struct-c
|
|
(box (list tlp2038 tlp2039 tlp2040)))
|
|
(app test-struct-d (not (not #t))))
|
|
(and (? test-struct? tlp2043)
|
|
(app test-struct-a tlp2044)
|
|
(app test-struct-b 7)
|
|
(app
|
|
test-struct-c
|
|
(box (list tlp2045 tlp2046 tlp2047)))
|
|
(app test-struct-d (not (not #t)))))
|
|
(and (vector
|
|
(and tlp2048 tlp2049)
|
|
(list tlp2050 tlp2051 tlp2052 tlp2053)
|
|
(and tlp2054 tlp2055)
|
|
tlp2056)
|
|
(vector
|
|
(and tlp2057 tlp2058)
|
|
(list tlp2059 tlp2060 tlp2061 tlp2062)
|
|
(and tlp2063 tlp2064)
|
|
tlp2065))
|
|
#\c)
|
|
'symbols
|
|
(list)
|
|
(not (not '(+ 4 5))))
|
|
(list
|
|
tlp2036
|
|
tlp2037
|
|
tlp2038
|
|
tlp2039
|
|
tlp2040
|
|
tlp2048
|
|
tlp2050
|
|
tlp2051
|
|
tlp2052
|
|
tlp2053
|
|
tlp2054
|
|
tlp2056)))))
|
|
(list
|
|
(mytest (tlp2066 `(#t #\c () #\c)) '(#\c #\c))
|
|
(mytest
|
|
(tlp2066
|
|
`((((+ 4 5) (+ 1 2) are these)
|
|
((#\d 3 #\b #\c)
|
|
((+ 4 (+ 1 1)) #\c (+ 4 (+ 1 1)) + 4 (+ 1 1))
|
|
(#\a 1 #\d)
|
|
0)
|
|
0
|
|
.
|
|
#\b)
|
|
#\c
|
|
(#\d these #t)
|
|
#f))
|
|
'((+ 4 5)
|
|
these
|
|
#\d
|
|
3
|
|
#\b
|
|
#\c
|
|
(+ 4 (+ 1 1))
|
|
#\c
|
|
(+ 4 (+ 1 1))
|
|
(+ 4 (+ 1 1))
|
|
(#\a 1 #\d)
|
|
0
|
|
(#\d these #t)))
|
|
(mytest
|
|
(tlp2066
|
|
`(((#\a #f #\a)
|
|
,inst-struct-name2041
|
|
#4((+ 4 5) (#\a (+ 1 2) (+ 4 5) #\c) #f 7)
|
|
#\c)
|
|
symbols
|
|
()
|
|
(+ 4 5)))
|
|
'((#\a #f #\a)
|
|
(+ 1 2)
|
|
#\c
|
|
#\d
|
|
(+ 4 5)
|
|
(+ 4 5)
|
|
#\a
|
|
(+ 1 2)
|
|
(+ 4 5)
|
|
#\c
|
|
#f
|
|
7))))
|
|
(let ((tlp2095
|
|
(match-lambda
|
|
((list
|
|
(and (? number? tlp2067) (? even? tlp2068))
|
|
_
|
|
(or 'these 'these)
|
|
8)
|
|
(list tlp2067))
|
|
((list
|
|
(list tlp2069 ..3)
|
|
(list tlp2070 ..3)
|
|
(box
|
|
(list
|
|
(not (not 'are))
|
|
(and (? number? tlp2071) (? even? tlp2072))
|
|
tlp2073))
|
|
(list-rest
|
|
(vector
|
|
(list)
|
|
tlp2074
|
|
tlp2075
|
|
(list-rest tlp2076 tlp2077 tlp2078 'symbols))
|
|
tlp2079
|
|
(and (? test-struct? tlp2086)
|
|
(app
|
|
test-struct-a
|
|
(vector tlp2080 tlp2081 tlp2082 tlp2083))
|
|
(app test-struct-b _)
|
|
(app test-struct-c (not (not #\c)))
|
|
(app test-struct-d (list tlp2084 __3)))
|
|
'are))
|
|
(list
|
|
tlp2069
|
|
tlp2070
|
|
tlp2071
|
|
tlp2073
|
|
tlp2074
|
|
tlp2075
|
|
tlp2076
|
|
tlp2077
|
|
tlp2078
|
|
tlp2079
|
|
tlp2080
|
|
tlp2081
|
|
tlp2082
|
|
tlp2083
|
|
tlp2084))
|
|
((list
|
|
#\b
|
|
_
|
|
(struct
|
|
test-struct
|
|
((list tlp2087 ...)
|
|
(and (? number? tlp2088) (? even? tlp2089))
|
|
(or tlp2090 tlp2090)
|
|
(vector (not (not '(+ 1 2))) tlp2091 (list) tlp2092)))
|
|
tlp2094)
|
|
(list tlp2087 tlp2088 tlp2090 tlp2091 tlp2092 tlp2094)))))
|
|
(list
|
|
(mytest (tlp2095 `(18 1 these 8)) '(18))
|
|
(mytest
|
|
(tlp2095
|
|
`((#f #\a #\c)
|
|
(#f #f are)
|
|
#&(are 10 #f)
|
|
(#4(() #\b are (#t symbols 0 . symbols))
|
|
6
|
|
,inst-struct-name2085
|
|
.
|
|
are)))
|
|
'((#f #\a #\c)
|
|
(#f #f are)
|
|
10
|
|
#f
|
|
#\b
|
|
are
|
|
#t
|
|
symbols
|
|
0
|
|
6
|
|
#t
|
|
(+ 4 5)
|
|
(+ 4 5)
|
|
#t
|
|
(these these 7)))
|
|
(mytest
|
|
(tlp2095 `(#\b these ,inst-struct-name2093 #\a))
|
|
'((#\b 9 #\b) 16 #\a 9 2 #\a))))
|
|
(let ((tlp2164
|
|
(match-lambda
|
|
((list
|
|
(and (? number? tlp2096) (? even? tlp2097))
|
|
(and (? test-struct? tlp2105)
|
|
(app test-struct-a #\b)
|
|
(app
|
|
test-struct-b
|
|
(or (and (list tlp2098 ___) (list tlp2099 ___))
|
|
(and (list tlp2098 ___) (list tlp2099 ___))))
|
|
(app
|
|
test-struct-c
|
|
(and (? number? tlp2100) (? even? tlp2101)))
|
|
(app
|
|
test-struct-d
|
|
(and (? number? tlp2102) (? even? tlp2103))))
|
|
#t
|
|
#\a)
|
|
(list tlp2096 tlp2098 tlp2100 tlp2102))
|
|
((list
|
|
(and (? test-struct? tlp2128)
|
|
(app test-struct-a _)
|
|
(app test-struct-b (list))
|
|
(app
|
|
test-struct-c
|
|
(struct
|
|
test-struct
|
|
((struct
|
|
test-struct
|
|
(tlp2106 tlp2107 tlp2108 tlp2109))
|
|
(vector tlp2111 ...)
|
|
tlp2112
|
|
(vector tlp2113 tlp2114 tlp2115 tlp2116))))
|
|
(app
|
|
test-struct-d
|
|
(vector
|
|
(box (list tlp2118 tlp2119 tlp2120))
|
|
(struct test-struct (tlp2121 tlp2122 tlp2123 tlp2124))
|
|
tlp2126
|
|
(list))))
|
|
(and (? test-struct? tlp2139)
|
|
(app test-struct-a _)
|
|
(app
|
|
test-struct-b
|
|
(and (? test-struct? tlp2134)
|
|
(app test-struct-a _)
|
|
(app test-struct-b (vector tlp2129 ___))
|
|
(app
|
|
test-struct-c
|
|
(list-rest tlp2130 tlp2131 tlp2132 'symbols))
|
|
(app test-struct-d 'these)))
|
|
(app
|
|
test-struct-c
|
|
(and (? number? tlp2135) (? even? tlp2136)))
|
|
(app test-struct-d tlp2137))
|
|
(vector tlp2140 ...)
|
|
tlp2141)
|
|
(list
|
|
tlp2106
|
|
tlp2107
|
|
tlp2108
|
|
tlp2109
|
|
tlp2111
|
|
tlp2112
|
|
tlp2113
|
|
tlp2114
|
|
tlp2115
|
|
tlp2116
|
|
tlp2118
|
|
tlp2119
|
|
tlp2120
|
|
tlp2121
|
|
tlp2122
|
|
tlp2123
|
|
tlp2124
|
|
tlp2126
|
|
tlp2129
|
|
tlp2130
|
|
tlp2131
|
|
tlp2132
|
|
tlp2135
|
|
tlp2137
|
|
tlp2140
|
|
tlp2141))
|
|
((list
|
|
(struct
|
|
test-struct
|
|
((list-rest
|
|
(struct test-struct (tlp2142 tlp2143 tlp2144 tlp2145))
|
|
(not (not #f))
|
|
tlp2147
|
|
#t)
|
|
_
|
|
tlp2148
|
|
(list-rest
|
|
(and (? test-struct? tlp2154)
|
|
(app test-struct-a tlp2149)
|
|
(app test-struct-b tlp2150)
|
|
(app test-struct-c tlp2151)
|
|
(app test-struct-d tlp2152))
|
|
(and tlp2155 tlp2156)
|
|
(box (list tlp2157 tlp2158 tlp2159))
|
|
#\b)))
|
|
(list tlp2161 __3)
|
|
'these
|
|
(and (? number? tlp2162) (? even? tlp2163)))
|
|
(list
|
|
tlp2142
|
|
tlp2143
|
|
tlp2144
|
|
tlp2145
|
|
tlp2147
|
|
tlp2148
|
|
tlp2149
|
|
tlp2150
|
|
tlp2151
|
|
tlp2152
|
|
tlp2155
|
|
tlp2157
|
|
tlp2158
|
|
tlp2159
|
|
tlp2161
|
|
tlp2162)))))
|
|
(list
|
|
(mytest
|
|
(tlp2164 `(14 ,inst-struct-name2104 #t #\a))
|
|
'(14 (symbols 1 (+ 4 5)) 12 0))
|
|
(mytest
|
|
(tlp2164
|
|
`(,inst-struct-name2127
|
|
,inst-struct-name2138
|
|
#3(#\a #\a (+ 4 5))
|
|
#\d))
|
|
'(#\a
|
|
#\a
|
|
these
|
|
symbols
|
|
(#t 4 7)
|
|
(+ 1 2)
|
|
2
|
|
symbols
|
|
(+ 4 (+ 1 1))
|
|
5
|
|
are
|
|
6
|
|
#\c
|
|
#\c
|
|
(+ 4 (+ 1 1))
|
|
#\c
|
|
2
|
|
9
|
|
(#\b #\a #\d)
|
|
(+ 4 5)
|
|
#\d
|
|
#\b
|
|
10
|
|
#\d
|
|
(#\a #\a (+ 4 5))
|
|
#\d))
|
|
(mytest
|
|
(tlp2164 `(,inst-struct-name2160 (#\a 0 are) these 0))
|
|
'(9
|
|
#t
|
|
#t
|
|
(+ 4 5)
|
|
3
|
|
#\c
|
|
#\c
|
|
symbols
|
|
(+ 4 (+ 1 1))
|
|
#\a
|
|
#f
|
|
7
|
|
0
|
|
2
|
|
(#\a 0 are)
|
|
0))))
|
|
|
|
(let ((tlp2271
|
|
(match-lambda*
|
|
((list (not (not #\b)) '(+ 4 (+ 1 1)) (vector tlp2260 ...) _)
|
|
(list tlp2260))
|
|
((list
|
|
(list)
|
|
(and (? test-struct? tlp2264)
|
|
(app test-struct-a (not (not #\a)))
|
|
(app test-struct-b (vector tlp2261 ...))
|
|
(app test-struct-c (or (list) (list)))
|
|
(app
|
|
test-struct-d
|
|
(list-rest
|
|
'(+ 1 2)
|
|
(list tlp2262 ...)
|
|
(not (not #\b))
|
|
'these)))
|
|
(or (list tlp2265 __3) (list tlp2265 __3))
|
|
(list))
|
|
(list tlp2261 tlp2262 tlp2265))
|
|
((list
|
|
(list tlp2266 ___)
|
|
(struct
|
|
test-struct
|
|
((list tlp2267 __3) (not (not 'are)) tlp2268 (list)))
|
|
(list tlp2270 __3)
|
|
(and #f #f))
|
|
(list tlp2266 tlp2267 tlp2268 tlp2270)))))
|
|
(list
|
|
(mytest
|
|
(tlp2271 `#\b `(+ 4 (+ 1 1)) `#3((+ 1 2) #f symbols) `#\d)
|
|
'(((+ 1 2) #f symbols)))
|
|
(mytest
|
|
(tlp2271 `() `,inst-struct-name2263 `(symbols 1 symbols) `())
|
|
'((#\d symbols (+ 4 5)) (are #\b #\d) (symbols 1 symbols)))
|
|
(mytest
|
|
(tlp2271
|
|
`(#t #\b (+ 4 5))
|
|
`,inst-struct-name2269
|
|
`((+ 4 (+ 1 1)) #f these)
|
|
`#f)
|
|
'((#t #\b (+ 4 5)) (symbols #\a #\a) #f ((+ 4 (+ 1 1)) #f these)))))
|
|
(let ((tlp2315
|
|
(match-lambda*
|
|
((list
|
|
tlp2273
|
|
(box
|
|
(list
|
|
(struct
|
|
test-struct
|
|
((vector tlp2274 ___)
|
|
(vector tlp2275 ___)
|
|
(vector tlp2276 ...)
|
|
(and (list tlp2277 ___) (list tlp2278 ___))))
|
|
(and (? number? tlp2280) (? even? tlp2281))
|
|
(list (and tlp2282 tlp2283) tlp2284 _ (list tlp2285 ___))))
|
|
_
|
|
(and (? number? tlp2286) (? even? tlp2287)))
|
|
(list
|
|
tlp2273
|
|
tlp2274
|
|
tlp2275
|
|
tlp2276
|
|
tlp2277
|
|
tlp2280
|
|
tlp2282
|
|
tlp2284
|
|
tlp2285
|
|
tlp2286))
|
|
((list
|
|
tlp2288
|
|
(and (list-rest
|
|
(list-rest
|
|
'(+ 4 5)
|
|
(list tlp2289 tlp2290 tlp2291 tlp2292)
|
|
(not (not #\a))
|
|
#\b)
|
|
(list-rest
|
|
(list)
|
|
#\a
|
|
(and (? number? tlp2293) (? even? tlp2294))
|
|
'these)
|
|
(list tlp2295 ___)
|
|
6)
|
|
(list-rest
|
|
(list-rest
|
|
'(+ 4 5)
|
|
(list tlp2296 tlp2297 tlp2298 tlp2299)
|
|
(not (not #\a))
|
|
#\b)
|
|
(list-rest
|
|
(list)
|
|
#\a
|
|
(and (? number? tlp2300) (? even? tlp2301))
|
|
'these)
|
|
(list tlp2302 ___)
|
|
6))
|
|
(box
|
|
(list
|
|
(list)
|
|
_
|
|
(and (? test-struct? tlp2306)
|
|
(app test-struct-a tlp2303)
|
|
(app test-struct-b (list))
|
|
(app test-struct-c #t)
|
|
(app
|
|
test-struct-d
|
|
(or (list tlp2304 ..3) (list tlp2304 ..3))))))
|
|
(struct
|
|
test-struct
|
|
(tlp2307
|
|
(list)
|
|
(not (not 'symbols))
|
|
(or (and (? number? tlp2308) (? even? tlp2309))
|
|
(and (? number? tlp2308) (? even? tlp2309))))))
|
|
(list
|
|
tlp2288
|
|
tlp2289
|
|
tlp2290
|
|
tlp2291
|
|
tlp2292
|
|
tlp2293
|
|
tlp2295
|
|
tlp2303
|
|
tlp2304
|
|
tlp2307
|
|
tlp2308))
|
|
((list
|
|
tlp2311
|
|
(or tlp2312 tlp2312)
|
|
(vector tlp2313 ___)
|
|
tlp2314)
|
|
(list tlp2311 tlp2312 tlp2313 tlp2314)))))
|
|
(list
|
|
(mytest
|
|
(tlp2315
|
|
`1
|
|
`#&(,inst-struct-name2279 4 (#f #f #\d (#\b #\c #t)))
|
|
`(+ 1 2)
|
|
`12)
|
|
'(1
|
|
(#\a #\b symbols)
|
|
((+ 4 (+ 1 1)) #\d 2)
|
|
(#f #\b (+ 1 2))
|
|
(these #\b are)
|
|
4
|
|
#f
|
|
#f
|
|
(#\b #\c #t)
|
|
12))
|
|
(mytest
|
|
(tlp2315
|
|
`#f
|
|
`(((+ 4 5) (#f symbols (+ 4 (+ 1 1)) #\a) #\a . #\b)
|
|
(() #\a 0 . these)
|
|
(symbols symbols #\c)
|
|
.
|
|
6)
|
|
`#&(() #\d ,inst-struct-name2305)
|
|
`,inst-struct-name2310)
|
|
'(#f
|
|
#f
|
|
symbols
|
|
(+ 4 (+ 1 1))
|
|
#\a
|
|
0
|
|
(symbols symbols #\c)
|
|
#\c
|
|
(#\c 0 9)
|
|
#\b
|
|
18))
|
|
(mytest
|
|
(tlp2315 `(+ 4 (+ 1 1)) `(+ 1 2) `#3(6 4 #t) `#\d)
|
|
'((+ 4 (+ 1 1)) (+ 1 2) (6 4 #t) #\d))))
|
|
(let ((tlp2414
|
|
(match-lambda*
|
|
((list
|
|
(not (not #\b))
|
|
_
|
|
(list
|
|
(list tlp2317 ...)
|
|
(list tlp2318 ..3)
|
|
(vector
|
|
tlp2319
|
|
_
|
|
(box (list tlp2320 tlp2321 tlp2322))
|
|
(struct test-struct (tlp2323 tlp2324 tlp2325 tlp2326)))
|
|
'(+ 4 5))
|
|
(list tlp2328 __3))
|
|
(list
|
|
tlp2317
|
|
tlp2318
|
|
tlp2319
|
|
tlp2320
|
|
tlp2321
|
|
tlp2322
|
|
tlp2323
|
|
tlp2324
|
|
tlp2325
|
|
tlp2326
|
|
tlp2328))
|
|
((list
|
|
tlp2329
|
|
(list tlp2330 ...)
|
|
(list
|
|
(struct
|
|
test-struct
|
|
(_
|
|
(struct test-struct (tlp2331 tlp2332 tlp2333 tlp2334))
|
|
_
|
|
(list)))
|
|
tlp2337
|
|
(and (and (box (list tlp2338 tlp2339 tlp2340))
|
|
(box (list tlp2341 tlp2342 tlp2343)))
|
|
(and (box (list tlp2344 tlp2345 tlp2346))
|
|
(box (list tlp2347 tlp2348 tlp2349))))
|
|
(and #\d #\d))
|
|
(list-rest
|
|
(list-rest
|
|
(struct test-struct (tlp2350 tlp2351 tlp2352 tlp2353))
|
|
(or (struct test-struct (tlp2355 tlp2356 tlp2357 tlp2358))
|
|
(struct
|
|
test-struct
|
|
(tlp2355 tlp2356 tlp2357 tlp2358)))
|
|
(list-rest tlp2360 tlp2361 tlp2362 #\c)
|
|
#\a)
|
|
(list tlp2363 ___)
|
|
(list)
|
|
3))
|
|
(list
|
|
tlp2329
|
|
tlp2330
|
|
tlp2331
|
|
tlp2332
|
|
tlp2333
|
|
tlp2334
|
|
tlp2337
|
|
tlp2338
|
|
tlp2339
|
|
tlp2340
|
|
tlp2350
|
|
tlp2351
|
|
tlp2352
|
|
tlp2353
|
|
tlp2355
|
|
tlp2356
|
|
tlp2357
|
|
tlp2358
|
|
tlp2360
|
|
tlp2361
|
|
tlp2362
|
|
tlp2363))
|
|
((list
|
|
(and (? test-struct? tlp2396)
|
|
(app
|
|
test-struct-a
|
|
(and (? test-struct? tlp2371)
|
|
(app test-struct-a tlp2364)
|
|
(app test-struct-b tlp2365)
|
|
(app
|
|
test-struct-c
|
|
(list tlp2366 tlp2367 tlp2368 tlp2369))
|
|
(app test-struct-d (list))))
|
|
(app
|
|
test-struct-b
|
|
(struct
|
|
test-struct
|
|
((and (? test-struct? tlp2377)
|
|
(app test-struct-a tlp2372)
|
|
(app test-struct-b tlp2373)
|
|
(app test-struct-c tlp2374)
|
|
(app test-struct-d tlp2375))
|
|
(list tlp2378 ..3)
|
|
(and (? number? tlp2379) (? even? tlp2380))
|
|
(vector tlp2381 ...))))
|
|
(app
|
|
test-struct-c
|
|
(box
|
|
(list
|
|
(list tlp2383 ..3)
|
|
(and (? test-struct? tlp2389)
|
|
(app test-struct-a tlp2384)
|
|
(app test-struct-b tlp2385)
|
|
(app test-struct-c tlp2386)
|
|
(app test-struct-d tlp2387))
|
|
tlp2390)))
|
|
(app
|
|
test-struct-d
|
|
(and (and (? number? tlp2391) (? even? tlp2392))
|
|
(and (? number? tlp2393) (? even? tlp2394)))))
|
|
(list
|
|
'(+ 1 2)
|
|
(vector tlp2397 ___)
|
|
(struct
|
|
test-struct
|
|
((vector tlp2398 tlp2399 tlp2400 tlp2401)
|
|
(and (? number? tlp2402) (? even? tlp2403))
|
|
tlp2404
|
|
(list-rest tlp2405 tlp2406 tlp2407 'symbols)))
|
|
_)
|
|
(struct
|
|
test-struct
|
|
((list tlp2409 ..3)
|
|
(not (not #\a))
|
|
tlp2410
|
|
(and (? number? tlp2411) (? even? tlp2412))))
|
|
(list))
|
|
(list
|
|
tlp2364
|
|
tlp2365
|
|
tlp2366
|
|
tlp2367
|
|
tlp2368
|
|
tlp2369
|
|
tlp2372
|
|
tlp2373
|
|
tlp2374
|
|
tlp2375
|
|
tlp2378
|
|
tlp2379
|
|
tlp2381
|
|
tlp2383
|
|
tlp2384
|
|
tlp2385
|
|
tlp2386
|
|
tlp2387
|
|
tlp2390
|
|
tlp2391
|
|
tlp2397
|
|
tlp2398
|
|
tlp2399
|
|
tlp2400
|
|
tlp2401
|
|
tlp2402
|
|
tlp2404
|
|
tlp2405
|
|
tlp2406
|
|
tlp2407
|
|
tlp2409
|
|
tlp2410
|
|
tlp2411)))))
|
|
(list
|
|
(mytest
|
|
(tlp2414
|
|
`#\b
|
|
`#\c
|
|
`((#f (+ 4 (+ 1 1)) #\a)
|
|
(#\c are (+ 4 (+ 1 1)))
|
|
#4(are #\c #&(#t 5 (+ 4 (+ 1 1))) ,inst-struct-name2327)
|
|
(+ 4 5))
|
|
`((+ 4 5) #\b #\a))
|
|
'((#f (+ 4 (+ 1 1)) #\a)
|
|
(#\c are (+ 4 (+ 1 1)))
|
|
are
|
|
#t
|
|
5
|
|
(+ 4 (+ 1 1))
|
|
#\d
|
|
#f
|
|
these
|
|
3
|
|
((+ 4 5) #\b #\a)))
|
|
(mytest
|
|
(tlp2414
|
|
`#t
|
|
`(#\b #\c (+ 4 5))
|
|
`(,inst-struct-name2336 #\b #&(#\a symbols #\d) #\d)
|
|
`((,inst-struct-name2354
|
|
,inst-struct-name2359
|
|
((+ 4 (+ 1 1)) #\a (+ 1 2) . #\c)
|
|
.
|
|
#\a)
|
|
(#t 7 6)
|
|
()
|
|
.
|
|
3))
|
|
'(#t
|
|
(#\b #\c (+ 4 5))
|
|
#f
|
|
#\c
|
|
#\d
|
|
2
|
|
#\b
|
|
#\a
|
|
symbols
|
|
#\d
|
|
(+ 1 2)
|
|
#\b
|
|
0
|
|
#\d
|
|
#\d
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
#f
|
|
(+ 4 (+ 1 1))
|
|
#\a
|
|
(+ 1 2)
|
|
(#t 7 6)))
|
|
(mytest
|
|
(tlp2414
|
|
`,inst-struct-name2395
|
|
`((+ 1 2) #3(#\a 7 #f) ,inst-struct-name2408 (+ 1 2))
|
|
`,inst-struct-name2413
|
|
`())
|
|
'(#\d
|
|
#\c
|
|
these
|
|
6
|
|
#\a
|
|
(+ 1 2)
|
|
(+ 1 2)
|
|
1
|
|
3
|
|
#\a
|
|
(#\b (+ 4 5) (+ 1 2))
|
|
18
|
|
(8 #\a (+ 4 5))
|
|
(#\c #\c (+ 1 2))
|
|
#f
|
|
4
|
|
3
|
|
#t
|
|
(+ 4 5)
|
|
14
|
|
(#\a 7 #f)
|
|
#\d
|
|
#f
|
|
these
|
|
symbols
|
|
10
|
|
these
|
|
(+ 4 (+ 1 1))
|
|
symbols
|
|
(+ 4 5)
|
|
(0 #\b #\b)
|
|
symbols
|
|
2))))
|
|
(let ((tlp2448
|
|
(match-lambda*
|
|
((list
|
|
tlp2416
|
|
(not (not #t))
|
|
(or (list-rest
|
|
(and (list tlp2417 ...) (list tlp2418 ...))
|
|
(vector
|
|
(list-rest tlp2419 tlp2420 tlp2421 tlp2422)
|
|
#\c
|
|
tlp2423
|
|
(list-rest tlp2424 tlp2425 tlp2426 tlp2427))
|
|
9
|
|
'are)
|
|
(list-rest
|
|
(and (list tlp2417 ...) (list tlp2418 ...))
|
|
(vector
|
|
(list-rest tlp2419 tlp2420 tlp2421 tlp2422)
|
|
#\c
|
|
tlp2423
|
|
(list-rest tlp2424 tlp2425 tlp2426 tlp2427))
|
|
9
|
|
'are))
|
|
(list
|
|
tlp2428
|
|
(and (? number? tlp2429) (? even? tlp2430))
|
|
(not (not '(+ 4 5)))
|
|
(or (struct
|
|
test-struct
|
|
((box (list tlp2431 tlp2432 tlp2433))
|
|
#f
|
|
(vector tlp2434 tlp2435 tlp2436 tlp2437)
|
|
_))
|
|
(struct
|
|
test-struct
|
|
((box (list tlp2431 tlp2432 tlp2433))
|
|
#f
|
|
(vector tlp2434 tlp2435 tlp2436 tlp2437)
|
|
_)))))
|
|
(list
|
|
tlp2416
|
|
tlp2417
|
|
tlp2419
|
|
tlp2420
|
|
tlp2421
|
|
tlp2422
|
|
tlp2423
|
|
tlp2424
|
|
tlp2425
|
|
tlp2426
|
|
tlp2427
|
|
tlp2417
|
|
tlp2419
|
|
tlp2420
|
|
tlp2421
|
|
tlp2422
|
|
tlp2423
|
|
tlp2424
|
|
tlp2425
|
|
tlp2426
|
|
tlp2427
|
|
tlp2428
|
|
tlp2429
|
|
tlp2431
|
|
tlp2432
|
|
tlp2433
|
|
tlp2434
|
|
tlp2435
|
|
tlp2436
|
|
tlp2437))
|
|
((list
|
|
(vector
|
|
(list)
|
|
(not (not #\d))
|
|
(box (list (not (not 9)) (list) 'symbols))
|
|
(list))
|
|
_
|
|
tlp2439
|
|
(list-rest tlp2440 _ tlp2441 #t))
|
|
(list tlp2439 tlp2440 tlp2441))
|
|
((list
|
|
(or (not (not #\b)) (not (not #\b)))
|
|
(list
|
|
tlp2442
|
|
(list)
|
|
(list)
|
|
(and (vector tlp2443 ...) (vector tlp2444 ...)))
|
|
(list tlp2445 ___)
|
|
(or (and (? number? tlp2446) (? even? tlp2447))
|
|
(and (? number? tlp2446) (? even? tlp2447))))
|
|
(list tlp2442 tlp2443 tlp2445 tlp2446)))))
|
|
(list
|
|
(mytest
|
|
(tlp2448
|
|
`3
|
|
`#t
|
|
`((#\b #f are)
|
|
#4((#\d these symbols . #f) #\c #\c (these 4 #t . are))
|
|
9
|
|
.
|
|
are)
|
|
`(#\b 8 (+ 4 5) ,inst-struct-name2438))
|
|
'(3
|
|
(#\b #f are)
|
|
#\d
|
|
these
|
|
symbols
|
|
#f
|
|
#\c
|
|
these
|
|
4
|
|
#t
|
|
are
|
|
(#\b #f are)
|
|
#\d
|
|
these
|
|
symbols
|
|
#f
|
|
#\c
|
|
these
|
|
4
|
|
#t
|
|
are
|
|
#\b
|
|
8
|
|
(+ 4 (+ 1 1))
|
|
(+ 1 2)
|
|
(+ 4 5)
|
|
(+ 4 (+ 1 1))
|
|
9
|
|
#t
|
|
#\c))
|
|
(mytest
|
|
(tlp2448
|
|
`#4(() #\d #&(9 () symbols) ())
|
|
`#\a
|
|
`#\c
|
|
`(#\c #\a (+ 4 (+ 1 1)) . #t))
|
|
'(#\c #\c (+ 4 (+ 1 1))))
|
|
(mytest
|
|
(tlp2448
|
|
`#\b
|
|
`((+ 4 (+ 1 1)) () () #3(#\a these))
|
|
`((+ 4 5) these (+ 4 5))
|
|
`18)
|
|
'((+ 4 (+ 1 1)) (#\a these these) ((+ 4 5) these (+ 4 5)) 18))))
|
|
(let ((tlp2485
|
|
(match-lambda*
|
|
((list
|
|
(not (not #t))
|
|
tlp2450
|
|
(or (box
|
|
(list
|
|
(struct
|
|
test-struct
|
|
((vector tlp2451 ...)
|
|
#\d
|
|
(or tlp2452 tlp2452)
|
|
(vector tlp2453 ___)))
|
|
(list tlp2455 ..3)
|
|
tlp2456))
|
|
(box
|
|
(list
|
|
(struct
|
|
test-struct
|
|
((vector tlp2451 ...)
|
|
#\d
|
|
(or tlp2452 tlp2452)
|
|
(vector tlp2453 ___)))
|
|
(list tlp2455 ..3)
|
|
tlp2456)))
|
|
(or (list tlp2457 ...) (list tlp2457 ...)))
|
|
(list
|
|
tlp2450
|
|
tlp2451
|
|
tlp2452
|
|
tlp2453
|
|
tlp2455
|
|
tlp2456
|
|
tlp2457
|
|
))
|
|
((list
|
|
(list-rest
|
|
(box (list (or _ _) (list) (list tlp2458 ..3)))
|
|
tlp2459
|
|
(vector tlp2460 ___)
|
|
#t)
|
|
(and (? test-struct? tlp2470)
|
|
(app test-struct-a (not (not #\b)))
|
|
(app
|
|
test-struct-b
|
|
(struct
|
|
test-struct
|
|
((list)
|
|
(not (not #\b))
|
|
'symbols
|
|
(or (vector tlp2461 tlp2462 tlp2463 tlp2464)
|
|
(vector tlp2461 tlp2462 tlp2463 tlp2464)))))
|
|
(app test-struct-c #\d)
|
|
(app
|
|
test-struct-d
|
|
(box
|
|
(list (and tlp2466 tlp2467) (vector tlp2468 ___) _))))
|
|
(vector tlp2471 ___)
|
|
(not (not 9)))
|
|
(list
|
|
tlp2458
|
|
tlp2459
|
|
tlp2460
|
|
tlp2461
|
|
tlp2462
|
|
tlp2463
|
|
tlp2464
|
|
tlp2466
|
|
tlp2468
|
|
tlp2471
|
|
)
|
|
)
|
|
((list
|
|
(vector
|
|
(and (? number? tlp2472) (? even? tlp2473))
|
|
(list)
|
|
(struct
|
|
test-struct
|
|
((vector tlp2474 tlp2475 tlp2476 tlp2477)
|
|
(list tlp2478 ___)
|
|
(list tlp2479 ..3)
|
|
'(+ 1 2)))
|
|
(or _ _))
|
|
(list tlp2481 ..3)
|
|
tlp2482
|
|
(and (? number? tlp2483) (? even? tlp2484)))
|
|
(list
|
|
tlp2472
|
|
tlp2474
|
|
tlp2475
|
|
tlp2476
|
|
tlp2477
|
|
tlp2478
|
|
tlp2479
|
|
tlp2481
|
|
tlp2482
|
|
tlp2483)))))
|
|
(list
|
|
(mytest
|
|
(tlp2485
|
|
`#t
|
|
`#\d
|
|
`#&(,inst-struct-name2454 ((+ 1 2) #t #\a) (+ 1 2))
|
|
`(symbols #\b #\c))
|
|
'(#\d
|
|
(#\a symbols 8)
|
|
#f
|
|
(1 #\c 4)
|
|
((+ 1 2) #t #\a)
|
|
(+ 1 2)
|
|
(symbols #\b #\c)))
|
|
(mytest
|
|
(tlp2485
|
|
`(#&(#t () (3 these #t)) #\c #3(are 3 (+ 4 (+ 1 1))) . #t)
|
|
`,inst-struct-name2469
|
|
`#3(#f (+ 1 2) #t)
|
|
`9)
|
|
'((3 these #t)
|
|
#\c
|
|
(are 3 (+ 4 (+ 1 1)))
|
|
#t
|
|
(+ 4 5)
|
|
#t
|
|
#\d
|
|
#\b
|
|
(4 are 1)
|
|
(#f (+ 1 2) #t)))
|
|
(mytest
|
|
(tlp2485
|
|
`#4(10 () ,inst-struct-name2480 #\b)
|
|
`(4 #\c (+ 4 5))
|
|
`#\c
|
|
`6)
|
|
'(10
|
|
(+ 1 2)
|
|
7
|
|
are
|
|
#\b
|
|
(#\b symbols #\d)
|
|
(#\d symbols symbols)
|
|
(4 #\c (+ 4 5))
|
|
#\c
|
|
6))))
|
|
|
|
|
|
|
|
(report-errs)
|