[plt-scheme] (no subject)

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Jan 22 18:59:08 EST 2006

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



Posted on the users mailing list.