From 316e33e3eb6d83dabe3c791e407a86dda3a4836d Mon Sep 17 00:00:00 2001 From: Jacob Signorovitch Date: Fri, 10 Oct 2025 08:44:08 -0400 Subject: [PATCH] Again. --- 02-trees/main.rkt | 14 +++++++------- 04-typed-racket/main.rkt | 7 ++++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/02-trees/main.rkt b/02-trees/main.rkt index d4c28bf..91028a7 100644 --- a/02-trees/main.rkt +++ b/02-trees/main.rkt @@ -25,18 +25,18 @@ ; Convenient form of greater than. Slightly hack. (define (<2 a b c) (cond [(and (symbol? a) (symbol? c)) #t] - [(symbol? a) (< (- b 1) b c)] - [(symbol? c) (< a b (+ b 1))] + [(symbol? a) (< b c)] + [(symbol? c) (< a b)] [else (< a b c)])) ; recurse: t: Tree, lower: Num, upper: Num → Bool ; Recursively checks left & right with lower & upper bounds. (define (recurse t lower upper) - (cond [(symbol? t) (symbol=? t 'end)] - [else (and (<2 lower (tree-n t) upper) - (recurse (tree-left t) lower (tree-n t)) - (recurse (tree-right t) (tree-n t) upper))]))] - (recurse t 'quite-little 'very-big))) + (or (symbol? t) + (and (<2 lower (tree-n t) upper) + (recurse (tree-left t) lower (tree-n t)) + (recurse (tree-right t) (tree-n t) upper))))] + (recurse t 'quite-little 'very-big))) (check-expect (bst? sprout) #t) (check-expect (bst? sapling) #t) diff --git a/04-typed-racket/main.rkt b/04-typed-racket/main.rkt index 5e60ffc..227484d 100644 --- a/04-typed-racket/main.rkt +++ b/04-typed-racket/main.rkt @@ -61,9 +61,10 @@ ; good-bt?: t BT → Bool ; Determine whether bt is good. (define (good-bt? t) - () - #| - (local [; <2: U{Num, Sym}, Num, U{Num, Sym} → Bool + (cases t + [end (symbol])) +#| (local [; <2: U{Num, Sym}, Num, U{Num, Sym} → Bool + (: (U Number Symbol)) ; Convenient form of greater than. Slightly hack. (define (<2 a b c) (cond [(and (symbol? a) (symbol? c)) #t]