Scheme 简明方案R5R使用多个字段定义结构或类

Scheme 简明方案R5R使用多个字段定义结构或类,scheme,racket,r5rs,Scheme,Racket,R5rs,我已经用一个字段定义了一个结构,如何在一个结构或类中定义多个字段 我是R5RS新手,我只能提出有问题的代码,请将其视为伪代码来表达我正在尝试做的事情 (define recipe (let (salt 5) (sauce "ketchup"))) 或 最简洁、最常用的方法是什么?大多数方案实施都通过提供记录。因此,在您的情况下,您可以定义配方记录类型,如下所示: (define-record-type <recipe> (recipe salt sa

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

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

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


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

大多数方案实施都通过提供记录。因此,在您的情况下,您可以定义
配方
记录类型,如下所示:

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

如果您使用的是Racket,那么有一种更简单的语法来定义结构

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