Oke, If I understand this the struct Vanimal is not a part of the programm ?
Roelof Op 27-6-2012 15:56, Matthias Felleisen schreef:
1. You got trapped in a strange corner of the language: -- to ask whether some value is a a Vcat you should use Vcat? -- BSL should not really allow you to say 'Vcat' all by itself. [I need to investigate this problem. Sadly it is not a bug.] 2. Try to understand this: (define-struct Vcat [x happiness]) ;; A Vcat is (make-Vcat Number Number) (define-struct Vcham [x happiness]) ;; A Vcham is (make-Vcat Number Number) ;; An Animal is one of: ;; -- (make-Vcat Number Number) ;; -- (make-Vcham Number Number) ;; Animal -> Number ;; compute the sum of the x location and the degree of happiness (check-expect (happiness-quotient (make-Vcham 10 20)) 30) (check-expect (happiness-quotient (make-Vcat 10 100)) 110) (define (happiness-quotient a) (cond [(Vcat? a) (+ (Vcat-x a) (Vcat-happiness a))] [(Vcham? a) (+ (Vcham-x a) (Vcham-happiness a))])) On Jun 27, 2012, at 5:08 AM, Roelof Wobben wrote:Hello, I try to figure out how I can check if a struct is a Vcat or a Vcham. So i tried this: ; – a VCham (define-struct Vanimal (animal)) ; a struct has two parts ( the x-coordinate of a cat and the happiness of the cat) (define-struct Vcat [x happiness]) ; make Vcat : number (x) number (h) ; Vcat x -> number ; Vcat h -> number ; Any Vcat? -> Boolean ; a struct has two parts ( the x-coordinate of a kamneleon and the happiness of the kameleon) (define-struct Vcham [x happiness]) ; make Vcham : number (x) number (h) ; Vcham x -> number ; Vcham -> number ; Vanimal -> Boolean ; Function which cehcks if a struct is a Vcat (check-expect (check (make-Vanimal(make-Vcat 0 100))) true) (check-expect (check (make-Vanimal(make-Vcham 0 100))) false) (define (check s) ( equal? s Vchat) (check(make-Vanimal (make-Vcat 0 100))) But the answer is false not mather if the struct is a Vchat or a Vcham. Where am I missing something. Roelof ____________________ Racket Users list: http://lists.racket-lang.org/users
____________________ Racket Users list: http://lists.racket-lang.org/users

