0

我已经设法用一个字段定义了一个结构,如何在一个结构或类中定义多个字段?

我是 R5RS 的新手,我只能提出有问题的代码,请将其视为表达我正在尝试做的伪代码。

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

或者

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

最简洁和最常用的方法是什么?

4

1 回答 1

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"

如果您使用的是 Racket,则可以使用更简单的语法来定义结构。

(struct recipe (salt sauce))
于 2014-11-17T05:49:24.087 回答