在下一个代码中,我们在Scheme中构建一个圆圈:
(define make-circle (lambda (x-center y-center radius)
(cons 'circle
(lambda (m)
(cond ((eq? m 'x) x-center)
((eq? m 'y) y-center)
(else radius))))))
变量m的含义是什么?意思 - 从我们得到m的地方,以及意思是什么,例如,cond:“((eq? m 'x) x-center)
”。
答案 0 :(得分:0)
m
最有可能意味着“消息”。它可用于获取圆形数据结构的相应字段,例如
(define my-circle (make-circle 1 2 3))
; cdr is here because circle is a cons of 'circle and lambda,
; better abstract it out in real code
((cdr my-circle) 'y)
将导致2
。匿名函数(lambda)测试m
以确定要获取的字段。