HTDP2e练习65记下函数的名称(构造函数、选择器和谓词)



我从HTDP2e(练习65(中回答了以下问题:

练习65。查看以下结构类型定义:

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

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

我的答案是:

make movie是一个构造函数。电影是谓词。电影名称、电影制片人和电影年份是选择者。所以


(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:应为字段名,但找到一个字符串">你能帮我吗?如何编辑代码?

此行:

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

应为:

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

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