2012-01-18 71 views
-1

我必须编写一个程序,该程序需要一个列表并删除第一个项目,并在SCHEME中使用递归。 我只是坚持如何重演它。SCHEME中的Remove-1st函数

所以它必须

> (remove-1st '(x y z x)) 
(y z x) 
+0

该问题与陈述无关,因此其描述中必须有其他一些要求。没有解释为什么给定任务需要递归。 – dyoo 2012-01-18 15:58:06

+0

真的很难弄清楚你在这里问什么。 – 2012-01-19 06:46:42

回答

3

我想我一定是误解了你的问题,但是这将工作:

(define (remove-1st list) 
    (cdr list)) 

没有递归必要的。事实上,没有你自己的功能,因为cdr会做你想要的。

也许你需要重新描述你的问题?你的意思是你想以某种方式逐一获得剩余的物品吗?

+0

我必须使用递归,它是赋值的一部分。那是我挣扎的地方。 – 2012-01-18 07:09:56

+0

然后你需要一个不同的问题。递归是一种循环,循环对此没有意义。你在挣扎,因为你不能合理地使用循环来解决上述问题。 – Janne 2012-01-18 07:34:58

+0

我懂了!虽然谢谢!我最终扭转了局面,并从那里采取行动 – 2012-01-18 07:52:29