我从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"))
您不再定义结构,而是定义一个包含结构的变量。