0

我从 HTDP2e(练习 65)中提出了以下问题:

习题 65. 看看下面的结构类型定义:

(定义结构电影 [标题制片人年份])

写下函数的名称(构造函数、选择器和谓词)。

我的回答是:

make-movie 是一个构造函数。电影?是谓词。movie-title、movie-producer 和 movie-year 是选择器。所以


(define-struct movie [title producer year])
(define-struct M-1
  (make-movie "Parasite" "Bong Joon-ho" "2019"))

 (movie-title M-1) ; Parasite

 (movie-producer M-1) ;Bong Joon-ho

 (movie-year M-1) ; 2019

但我得到一个错误:“define-struct:期望一个字段名,但找到一个字符串”你能帮我吗?如何编辑我的代码?

4

1 回答 1

4

这一行:

(define-struct M-1
  (make-movie "Parasite" "Bong Joon-ho" "2019"))

应该:

(define M-1
  (make-movie "Parasite" "Bong Joon-ho" "2019"))

您不再定义结构,只是一个包含结构的变量。

于 2020-08-11T22:24:01.857 回答