[plt-scheme] (no subject)
On Jan 21, 2006, at 5:07 AM, igor denisov wrote:
> Hello there
>
> Can somebody help me to figure out what is wrong with these codes.
> DrScheme V208
> Language: Beginning Student.
>
> ;; hours->wages : list-of-numbers -> list-of-numbers
> ;; to create a list of weekly wages from a list of weekly hours (alon)
> (define (hours-wages alon)
> (cond
> ((empty? alon) empty)
> (else (cons (wage (first alon)) (hours-wages (rest alon))))))
>
> ;; wage : number -> number
> ;; to compute the total wage (at $12 per hour)
> ;; of someone who worked for h hours
> (define (wage h)
> (cond
> ((empty? h) 0)
Why do you use 'empty?' on a number?
> (else
> (* 12 (first h)
Why would you use 'first' on a number?
> (wage (rest h))
Why do you use 'rest' on a number?
> );;multiply
> );;else
> );;cond
> );;define
> Produces a bug: first: expects argument of type <non-empty list>;
> given 0
Where are your examples? Where are the tests? They should look like
this:
;; wage: ...
;; example:
;; given: 10, expected 120
'test-for-wage
(equal? (wage 10) 120)
;; ---
If your teacher allows it, you may formulate examples as tests right
away.
-- Matthias
>
> (define (dollar-store l)
> (cond
> ((empty? l) 0)
> ((and
> (< (first l) 1)
> (< (dollar-store (rest l)) 1))
> 'l)))
> (define l
> (cons .98 (cons .87 (cons .76 (cons .34 empty)))))
> Produces a bug: <: expects argument of type <real number>; given 'l
>
> Thanks in advance.
> Igor.
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme