[racket] Symbol Syntax

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Jan 5 09:06:31 EST 2011

Start reading HtDP/2e @ http://www.ccs.neu.edu/home/matthias/HtDP2e/ 

It uses strings, which may be more familiar to you and which accommodate a bit more variety. 

Then switch back to HtDP/1e. 


On Jan 5, 2011, at 7:18 AM, Sayth Renshaw wrote:

> 
> Can someone expand on the syntax for symbols? I can develop the check-guess game simply without symbols but cannot with symbols.
> Trying many versions of the symbol syntax but with no success.
> 
> This the example for symbols, but how can I test conditions with a symbol?
> (define (reply s)
>   (cond
>     [(symbol=? s 'GoodMorning) 'Hi]
> 
>     [(
> symbol=? s 'HowAreYou?) 'Fine]
> 
>     [(
> symbol=? s 'GoodAfternoon) 'INeedANap]
> 
>     [(
> symbol=? s 'GoodEvening) 'BoyAmITired]))
> 
> ;function check-guess
> ;given number evaluate to one of three answers
> ;number -> number -> string
> 
> tested without symbols and got it working so was trying to emulate this with symbols
> 
> (define (check-guess guess target)
>     (cond
>       [(< guess target) "Too Small"]
>       [(= guess target) "Perfect"]
>       [(> guess target) "Too large"]
>       
> 
> 
> ;(define (check-guess guess target)
> ;  (cond
> ;    [(symbol=? 'guess (< guess target) 'Too small)]
> ;    [(symbol=? 'guess (= guess target) 'Perfect)]
> ;    [(symbol=? 'guess (> guess target) 'Too Large)]))
> 
> ;(define (check-guess guess target)
> ;  (cond
> ;    [(symbol=? (< guess target) 'True 'Too Small)]
> ;    [(symbol=? (= guess target) 'True 'Perfect)]
> ;    [(symbol=? (> guess target) 'True 'Too Large)]))
> 
> ;(define (check-guess guess target)
> ;  (= s( < guess target))
> ;  (= s( = guess target))
> ;  (= s( > guess target)) 
> ;  (cond
> ;    [(symbol= s 'true 'Too Small)]
> ;    [(symbol= s 'true 'Perfect)]
> ;    [(symbol= s 'true 'Too Large)]))
>     
> ;(define (check-guess guess target)
> ;  [(symbol=? guess (< target guess) "Too small")]
> 
> 
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users



Posted on the users mailing list.