hello,<br><br>&nbsp; ex-11.3.4 reads:<br>
<br>
Exercise 11.3.4.&nbsp;&nbsp; Develop the function create-prices, which consumes a
natural number and produces a list with a corresponding number of
prices between $.10 and $10.00 with increments of a dime. <br>
<br>i think the it want to have a list in ascending order like this:<br><br>(cons 0.10 (cons 0.20 (cons 0.30.........empty)))<br><br>but i am getting exactly the opposite list. even after 3 hours of brain-work i am not able to get the desired result. do you have any idea?
<br><br>-------------------------------- start of programme ---------------------------<br>;; A natural number is either:<br>;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 0, or<br>;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. (add1 n) where n is a natural number<br><br>;; create-prices : N -&gt; list
<br>;; to produce a list of prices of n elements with each next elemnt is a dime more than the previuos. <br>;; (define (create-prices n)...)<br><br>#| TEMPLATE<br>(define (create-prices n)<br>&nbsp; (cond<br>&nbsp;&nbsp;&nbsp; [(zero? n)...]
<br>&nbsp;&nbsp;&nbsp; [else....(create-prices (sub1 n))...]))<br><br>examples<br>(create-prices 0)<br>;; expected answer<br>empty<br><br>(create-prices 3)<br>;; expected answer<br>(cons 0.10 (cons 0.20 (cons 0.30 empty))) |#<br><br>(define (create-prices n)
<br>&nbsp; (cond<br>&nbsp;&nbsp;&nbsp; [(zero? n) empty]<br>&nbsp;&nbsp;&nbsp; [else (cons (* n 0.10) (create-prices (sub1 n)))]))<br><br><br>;;(make-list -2 3)<br><br>;; i have created a function whch checks for values &gt; 10 and removes them as we only want between 
<br>;; 0.10 and 10.0<br><br>(define (remove&gt;10 alon)<br>&nbsp; (cond<br>&nbsp;&nbsp;&nbsp; [(empty? alon) empty]<br>&nbsp;&nbsp;&nbsp; [(&gt; (first alon) 10.0) (remove&gt;10 (rest alon))]<br>&nbsp;&nbsp;&nbsp; [else (cons (first alon) (remove&gt;10 (rest alon)))]))<br>
<br><br>&nbsp;<br>;; tests<br>;;(create-prices 0)<br>;; expected answer<br>empty<br><br>(create-prices 3)<br>;; expected answer<br>(cons 0.10 (cons 0.20 (cons 0.30 empty))) <br><br>-------------------------------- end of programme ----------------------------------------------------------
<br>OUTPUT:<br><br>well, this is what i get:<br>-------------------------------------------------------------<br>Welcome to DrScheme, version 209.<br>Language: Beginning Student.<br>Teachpack: /usr/lib/plt/teachpack/htdp/draw.ss.
<br>empty<br>empty<br>(cons 0.3 (cons 0.2 (cons 0.1 empty)))<br>(cons 0.1 (cons 0.2 (cons 0.3 empty)))<br>&gt; <br>-----------------------------------------------------------------<br><br>-- <br>&quot;the great intellectuals&quot;