2014-11-17 52 views
0

我已經設法定義一個字段的結構,如何在一個結構或類中定義多個字段?簡明的方案R5RS定義結構或類與多個字段

我是R5RS的新手,我只能想出有問題的代碼,請將它看作是表示我正在嘗試執行的僞代碼。

(define recipe 
    (let (salt 5) 
     (sauce "ketchup"))) 

(define recipe 
    '((let salt 5) 
    (let sauce "ketchup"))) 

什麼是最簡潔,最常見的方式(一個或多個)這樣做呢?

回答

1

大多數計劃實施通過SRFI 9提供記錄。所以你的情況,你可以定義一個recipe記錄類型,像這樣:

(define-record-type <recipe> 
    (recipe salt sauce) 
    recipe? 
    (salt recipe-salt) 
    (sauce recipe-sauce)) 

然後你可以使用它像這樣:

> (define salty-ketchup (recipe 5 "ketchup")) 
> (recipe-salt salty-ketchup) 
5 
> (recipe-sauce salty-ketchup) 
"ketchup" 

如果你使用的球拍,有一種更簡單的語法來定義結構。

(struct recipe (salt sauce))