【发布时间】:2021-05-05 03:22:25
【问题描述】:
我是新来的。我很快就会有一个测试,一个测试语言方案,我正在为此做好准备。
我有一个问题想解决几个小时,但我什至不知道如何开始。
问题是这样的:
这种形式有一个新的表达方式:
(get-procedure-body <exp>)
此表达式接收单个表达式作为参数,对其求值,如果获得用户过程类型值,则返回 她的身体。
方案语言中的问题
大家好,我是新来的。我很快就有一个测试,一个测试语言测试,我正在为它做准备。 我有一个问题想解决几个小时,但我什至不知道如何开始。
问题是这样的: 这种形式有一个新的表达方式:
此表达式接收单个表达式作为参数,对其求值,如果获得用户过程类型值,则返回 她的身体。
以下是重估后可能出现的情况:
- 如果返回值是用户过程 - 必须返回其主体
- 如果返回值是原始过程 - “隐藏实现!原始“
- 如果值不是过程,则打印“procedure-non: error”
函数操作的可能输出:
(get-procedure-body f)
> ((display x) (* x y))
(get-procedure-body (lambda (x) (h x)) )
> ((h x))
(get-procedure-body +)
> “primitive! Implementation hidden”
(get-procedure-body 1)
> “error: non-procedure”
(get-procedure-body (+ 1 1))
> “error: non-procedure”
问题是这样的:
添加对 body-procedure-get 表达式作为内核表达式的支持(编写所有必需的更改)
如果有人至少可以帮助我,我会很高兴,我试图解释自己,如果有不清楚的地方,告诉我,我会解释更多。这对我来说是一种困难的语言,尤其是因为它没有太多的支持。
我什至不知道该怎么做。
【问题讨论】:
-
听起来好像问题是在特定解释器的上下文中。你有文本的链接吗,在哪里描述?
-
@soegaard 感谢您的帮助,这就是我所拥有的一切
-
嗯,你在关注什么书/课程资料? SICP? EOPL?或者别的什么。
-
@soegaard book sicp
标签: scheme lisp common-lisp racket sicp