functional programming - list to tree in typedracket -
i trying convert list of integers tree. following function definitions:
(define-struct (some t) ([value : t])) (define-type (option t) (u 'none (some t))) (define-type bst (u 'e nd)) (define-struct nd ([root : integer] [lsub : bst] [rsub : bst])) (: bst-from-list ((listof integer) -> bst)) ;; build bst list of integers: use foldl s (define (bst-from-list x) (cond ('() 'e) ((cons hd _) (nd hd 'e 'e)) (else (foldl i learning home , have no idea after foldl. can please me?>
you have (: insert : integer bst -> bst) function.
build tree elements 1, 2, 3, using insert write
(insert 3 (insert 2 (insert 1 'e))) this left fold on (1 2 3) insert function , 'e initial value.
left fold combines first element initial value , combines result of second element, , on.
so need is
(: bst-from-list : ((listof integer) -> bst)) (define (bst-from-list ls) (foldl insert 'e ls))
Comments
Post a Comment