我刚开始接受计划,而且我不确定我做错了什么。
(let ((fn (car last-elem))
(output(if (> (length last-elem) 1) ;or = needed?
(cdr last-elem)
( '() ))))
(cond ((equal? fn 'dim) (dim output))
((equal? fn 'print) (print output))
这段代码应该生成语句然后传递给print,我的测试用例是Hello,World!
现在打印(以后会有更多内容,所以我需要一个新功能)就是这样:
(define (print args)
(display(args))
(newline)
这出错了:
申请:不是程序; 期望一个可以应用于参数的过程 给出:("你好,世界!") 参数......:[无] 上下文...
我想我正处于写作轨道上,因为我希望获得的输出存在于"给定。"但我希望这只是印刷。
我知道关于这个错误还有其他一些问题,但他们的解决方案都没有帮助我。
提前致谢。
答案 0 :(得分:1)
首先,print
过程有一组额外且不正确的括号,它应如下所示:
(define (print args)
(display args)
(newline))
当你得到"申请时:不是程序;期待一个程序"错误,这意味着您使用括号错误,在方案(f)
中意味着您正在尝试应用 f
作为无参数过程,如果f
不是程序,则会收到错误。