From 55d75280845ed6107d1e2885513a7d23dddeefff Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 19 May 2015 22:22:37 -0700 Subject: [PATCH] tests work --- typed/txexpr/core-predicates.rkt | 9 +++++++-- typed/txexpr/main.rkt | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/typed/txexpr/core-predicates.rkt b/typed/txexpr/core-predicates.rkt index a795930..593c6f6 100644 --- a/typed/txexpr/core-predicates.rkt +++ b/typed/txexpr/core-predicates.rkt @@ -53,14 +53,19 @@ comment p-i)) - +(define-predicate xexpr? Xexpr) (define-predicate txexpr? Txexpr) (define-predicate txexpr-short? Txexpr-Short) (define-predicate txexpr-tag? Txexpr-Tag) (define-predicate txexpr-tags? (Listof Txexpr-Tag)) (define-predicate txexpr-attr? Txexpr-Attr) (define-predicate txexpr-attrs? Txexpr-Attrs) -(define-predicate txexpr-element? Xexpr) +(define-predicate Valid-Char? Valid-Char) +(define/typed (txexpr-element? x) + (Any -> Boolean) + (if (xexpr? x) + (if (Valid-Char? x) (valid-char? x) #t) + #f)) (define-predicate txexpr-elements? (Listof Xexpr)) (define-predicate txexpr-attr-key? Txexpr-Attr-Key) (define-predicate txexpr-attr-value? Txexpr-Attr-Value) diff --git a/typed/txexpr/main.rkt b/typed/txexpr/main.rkt index ff16d00..5c74062 100644 --- a/typed/txexpr/main.rkt +++ b/typed/txexpr/main.rkt @@ -164,7 +164,7 @@ (set! results (cons (attr-ref tx key) results)) (map (λ([e : Txexpr-Element]) (loop e)) (get-elements tx)) (void))) - results) + (reverse results)) ;; convert list of alternating keys & values to attr