Updated again.

This commit is contained in:
2025-10-10 01:10:31 -04:00
parent 3fb80bd5e0
commit 15e68d2dcc
+3 -1
View File
@@ -21,13 +21,15 @@
; Tree t -> Bool ; Tree t -> Bool
; Determines whether a Tree is a binary search tree. ; Determines whether a Tree is a binary search tree.
(define (bst? t) (define (bst? t)
(local [; Convenient form of greater than. (local [; <2: U{Num, Sym}, Num, U{Num, Sym} → Bool
; Convenient form of greater than. Slightly hack.
(define (<2 a b c) (define (<2 a b c)
(cond [(and (symbol? a) (symbol? c)) #t] (cond [(and (symbol? a) (symbol? c)) #t]
[(symbol? a) (< (- b 1) b c)] [(symbol? a) (< (- b 1) b c)]
[(symbol? c) (< a b (+ b 1))] [(symbol? c) (< a b (+ b 1))]
[else (< a b c)])) [else (< a b c)]))
; recurse: t: Tree, lower: Num, upper: Num → Bool
; Recursively checks left & right with lower & upper bounds. ; Recursively checks left & right with lower & upper bounds.
(define (recurse t lower upper) (define (recurse t lower upper)
(cond [(symbol? t) (symbol=? t 'end)] (cond [(symbol? t) (symbol=? t 'end)]