tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
|
|
@ -0,0 +1,20 @@
|
|||
#lang typed/racket
|
||||
|
||||
(define-type (Tree A) (U False (Node A)))
|
||||
|
||||
(struct: (A) Node
|
||||
([val : A] [left : (Tree A)] [right : (Tree A)])
|
||||
#:transparent)
|
||||
|
||||
(: tree-map (All (A B) (A -> B) (Tree A) -> (Tree B)))
|
||||
(define (tree-map f tree)
|
||||
(match tree
|
||||
[#f #f]
|
||||
[(Node val left right)
|
||||
(Node (f val) (tree-map f left) (tree-map f right))]))
|
||||
|
||||
;; unit tests
|
||||
(require typed/rackunit)
|
||||
(check-equal?
|
||||
(tree-map add1 (Node 5 (Node 3 #f #f) #f))
|
||||
(Node 6 (Node 4 #f #f) #f))
|
||||
Loading…
Add table
Add a link
Reference in a new issue