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

Reply via email to