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

HTDP2e Exercise 65 Write down the names of the functions (constructors, selectors, and predicates)

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

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

(define-struct movie [title producer year])

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

我的答案是:

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:需要一个字段名,但找到了一个字符串”你能帮我吗?如何编辑我的代码?

这一行:

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

应该是:

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

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