Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Functional programming 替代计划中的休息?_Functional Programming_Scheme_Mit Scheme - Fatal编程技术网

Functional programming 替代计划中的休息?

Functional programming 替代计划中的休息?,functional-programming,scheme,mit-scheme,Functional Programming,Scheme,Mit Scheme,有没有一种方法可以在不使用rest的情况下完成这项工作(我尝试将cdr lst放在rest所在的位置,但它给了我一个错误),以及如何删除if条件-(if(>n0)-因为我只想显示输出列表-(list nE) 请注意,所有过程仅绑定到全局范围内的变量。 例如: (let ((rest 5)) (rest '(1 2 3))) 在R6RS和更高版本中,您应该得到一个异常,说明数字5不是一个过程。原因是您已经覆盖了此范围中的绑定rest,应该使用变量rest作为5的绑定,而不是尝试将其作为过程调

有没有一种方法可以在不使用rest的情况下完成这项工作(我尝试将cdr lst放在rest所在的位置,但它给了我一个错误),以及如何删除if条件-(if(>n0)-因为我只想显示输出列表-(list nE)


请注意,所有过程仅绑定到全局范围内的变量。 例如:

(let ((rest 5))
  (rest '(1 2 3)))
在R6RS和更高版本中,您应该得到一个异常,说明数字
5
不是一个过程。原因是您已经覆盖了此范围中的绑定
rest
,应该使用变量
rest
作为
5
的绑定,而不是尝试将其作为过程调用。在R5RS和更早版本中,结果是未定义的ned,因为它不是有效的方案代码,但大多数实现可能会出现与R6RS要求的错误类似的错误


您对
display
也做了同样的操作,但这次
display
是一个执行全局
display
以外的操作的过程。R6RS中可以,但R5RS和更早版本中不可以。对于所有受支持的类型,一个实现可以用全局替换它。
display
支持all类型,因此您的代码可能无法在所有实现中工作,因为它是无效的R5R。

注意:由于
display
是一个内置函数(打印值),因此将该名称用于其他用途似乎有些奇怪。
(let ((rest 5))
  (rest '(1 2 3)))