[racket] string problem question
ps. Your program's light function does NOT map Strings to Images. It maps World to images, ASSUMING you have defined
;; World is ...
(probably string here but 1, 2, and 3 would work and so would many others).
On Mar 19, 2012, at 4:25 PM, Matthias Felleisen wrote:
>
> 1. Your program does NOT change a string. It changes the state of the traffic light (or it tells drracket to keep track of a different state). The string "rood" remains the same in eternity.
>
> 2. You're missing test cases, and if you had tested the program you would have discovered it before evaluating (main "rood").
>
> 3. You can understand your program in terms of interactions after it signals an error:
>
>> (tock "rood") ;; what is the state after one clock tick
> "groen"
>> (tock (tock "rood")) ;; what is the state after two clock ticks
> "oranje"
>> (light (tock (tock "rood"))) ;; how will DrRacket render the state after two clock ticks
> . ;; <-- some yellow circle
>> ;; <-- now try three clock ticks.
>
>
>
> On Mar 19, 2012, at 3:10 PM, Roelof Wobben wrote:
>
>> Hello,
>>
>> I have to make a traffic-light which changes color after each tick of the computer.
>> So I thought this would work :
>>
>>
>> ;; String -> Image
>> ;; given a state of a trafic-light display a circle of the given color if it's a color of the traffic-light otherwise error
>> (define (light color)
>> (cond
>> [(string=? color "oranje") (circle 10 "solid" "yellow")]
>> [(string=? color "rood") (circle 10 "solid" "red" )]
>> [(string=? color "groen") (circle 10 "solid" "green" )]
>> [else (error "Error : geen kleur van een verkeerslicht ingevoerd in de functie" " light")]
>> ))
>>
>> ;; World -> World
>> ;; Given a World and set the traffic-light to the next color
>> (define (tock color)
>> ( cond
>> [ (string=? color "oranje") "red"]
>> [ (string=? color "rood") "groen"]
>> [ (string=? color "groen") "oranje"]
>> ))
>>
>> (define (main color)
>> ( big-bang color (on-tick tock) (to-draw light)))
>>
>> (main "rood")
>>
>> But the contents of color does not change so I get a error message.
>> What is the racket way to change the value of a string.
>>
>> Roelof
>>
>> ____________________
>> Racket Users list:
>> http://lists.racket-lang.org/users
>
>
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users