My solutions to the scheme text "How to Design Programs 2nd ed". (Or htdp2e) I aim to complete as many as these as I can - please feel free to comment on my solutions/answers!
Tuesday, 13 March 2012
Exercise 157b: On some occasions lists are formed with cons and list. Reformulate the following lists using list exclusively
Exercise 157: On some occasions lists are formed with cons and list. Reformulate the following lists using list exclusively:;
;(cons "a" (list 0 false))
;
;(list (cons 1 (cons 13 empty)))
;
;(cons (list 1 (list 13 empty)) empty)
;
;(list empty empty (cons 1 empty))
;
;(cons "a" (cons (list 1) (list false empty)))
Whoops! Completely missed that second part about doing this also exclusively using list. Luckily this is a lot easier than doing them using cons exclusively. The tricky part about this exercise was doing it all in your head before pasting the source expression into racket - as soon as you do that, racket gives the answer formatted using list. Doh!
;1 Reformulate: (cons "a" (list 0 false))
(check-expect (cons "a" (list 0 false))
(list "a" 0 false))
;2 Reformulate (list (cons 1 (cons 13 empty)))
(check-expect (list (cons 1 (cons 13 empty)))
(list (list 1 13) ))
;3 Reformulate (cons (list 1 (list 13 empty)) empty)
(check-expect (cons (list 1 (list 13 empty)) empty)
(list (list 1 (list 13 empty))))
;4 Reformulate
;(list empty empty (cons 1 empty))
(check-expect (list empty empty (cons 1 empty))
(list empty empty (list 1)))
;5 Reformulate (cons "a" (cons (list 1) (list false empty)))
(check-expect (cons "a" (cons (list 1) (list false empty)))
(list "a" (list 1) false empty))
Labels:
157,
how to design programs 2nd ed,
scheme
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment