这段代码的工作原理:
(define list-of-events
(for/list ([(date code)
(in-query odc "select date, code from attendance
where student_id = ? and term_code = ?"
"12345" "654321")])
(make-attendance-event date code)))
但是,当我尝试复制另一个表的行为时,make-attendance-event 的并行项目抱怨它是“未绑定的标识符”。
现在,make-attendance-event 从哪里来?
标识符make-attendance-event
来自一个(define-struct attendance-event (...))
.
结构体定义如
(define-struct foo (a b))
将扩展为多个定义。
- make-foo 将构造 foo-structs
- foo-a、foo-b 字段访问器
- 富?可以确定值是否为 foo 的谓词
在高级语言中,您还可以获得:
- 设置-foo-a!,设置-foo-b!改变各自的字段。
在这里查看更多内容:http://docs.racket-lang.org/htdp-langs/advanced.html?q=define-struct#%28form._%28%28lib._lang%2Fhtdp-advanced..rkt%29._define-struct% 29%29 http://docs.racket-lang.org/htdp-langs/advanced.html?q=define-struct#%28form._%28%28lib._lang%2Fhtdp-advanced..rkt%29._define-struct%29%29
请注意,您可以将鼠标悬停在标识符上make-attendance-event
在 DrRacket 中,右键单击并选择“跳转到绑定事件”以查看定义标识符的位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)