Scheme 宏展开期间出错:空体#f
我正在学习Scheme,我无法找出我在这段代码中犯了什么错误:Scheme 宏展开期间出错:空体#f,scheme,Scheme,我正在学习Scheme,我无法找出我在这段代码中犯了什么错误: (define (distance a b) (define c 1) (define loop (lambda (a b c) ((if (<= c b) (begin (display (c (* a c))) (newline) (apply loop '(a b (+ c 1)))) 'done))))) (
(define (distance a b)
(define c 1)
(define loop
(lambda (a b c)
((if (<= c b)
(begin
(display (c (* a c)))
(newline)
(apply loop '(a b (+ c 1))))
'done)))))
(定义(距离a和b)
(定义c 1)
(定义循环
(lambda(a、b、c)
((如果(似乎有一个缺失体。在方案中,lambda被定义为
(lambda (args ...)
(define local-binding ...) ...
body ...)
在distance
中c
和loop
是局部定义,但没有实体。因此distance
与a
或b
没有任何关系,如果它起作用,它将始终返回未定义的值。例如,这不是一个非常有用的过程
当你确定你可能想看一看时,你的代码在(display(c(*a c)))上没有给我一个错误,
将调用函数c
,但是c
是常量1
,这似乎是错误的。哦,这是有意义的!一定是它。除非我做错了其他事情。。
(lambda (args ...)
(define local-binding ...) ...
body ...)