2016-12-15 81 views
1

我正在制定計劃中的結構來表示一個人。該結構包含人名年齡和性別信息我正在使用計劃中的結構,需要提取並比較結構中的信息

(define-struct person (name height gender) 

這就是我的代碼結構。現在我需要添加一個函數,根據人的身高將人分爲高或低。我不知道如何去增加一個條件的結構:1)確定,如果該人是沿着這些線路我認爲女性

(define-struct person (name height gender) 
    (cond 
     [gender? ('male)] 

東西的男性?

2)我還必須找出這個人有多高,並根據他們的身高(英寸)是否超過女性的69以及男性的72英寸來宣佈他們是否高。然後添加一種方式來打印出這些人的名字以及他們是否高大或矮小。

+1

將「person」定義爲一個類(而不是struct)可能更好,可以輕鬆添加不同的函數。 – rnso

+0

不應該將條件添加到您的函數中,而不是您的結構中? –

回答

2

這是一個小例子。這個例子展示瞭如何確定一個人是否高個子(我將它作爲一個練習讓你瞭解如何對男性和女性使用不同的限制)。

(define (tall? a-person) 
    (> (person-height a-person) 69) 

(define (categorize a-person) 
    (cond 
    [(tall? a-person) "tall"] 
    [else    "short"])) 

(categorize (person "Susan" 172 'female))