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

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -