| 10 POINTS |
Problem 5. Your manager just came home from a consulting visit with a client. This (new) client keeps around non-empty lists of strings. Your company sold this client a ``sentence packaging'' program, which concatenates a list of strings into a single string. The original strings are separated via commas in the ``packaged string.'' Develop the program.
;; A Los is one of: ;; -- (cons String empty) ;; -- (cons String Los)
Solution:
;; pack : Los -> String [PT 1]
;; concatenate the strings on alos;
;; separate them via commas [PT 1]
(define (pack alos)
(cond ;; [PT 3, two for cond lines,
;; one for (empty? (rest ...))]
[(empty? (rest alos)) (first alos)]
;; [PT 3, one for correctness,
;; two for "template" expressions ]
[else (string-append
(first alos) "," (pack (rest alos)))]))
;; Examples/Tests: [PT 2, for correct tests/examples]
(string=? (pack (cons "hello" (cons "world" empty)))
"hello,world")
(string=? (pack (cons "friedman" (cons "dan" empty)))
"friedman,dan")