从列表中选择元素

问题描述:

你会如何设计一个功能find,这将需要在符号列表,以及一个数字,并返回列表从列表中选择元素

我猜的输出会是这样

的第n个符号
(find (list 'a 'b 'c 'd) 3) 

倒是

(find (list 'a 'b 'c 'd 'e 'f) 4) 

'e

是否有一种简单的方法可以做到这一点,不会让我困惑,而且易于使用初学者?

+2

我假设你不能使用'list-ref'? – leppie 2013-02-24 17:27:36

+0

看起来像我可以 – 2013-02-24 17:44:36

+0

你应该能够通过第一原则来解决问题。使用设计配方。主递归将集中在数字上,而不是列表上。 – dyoo 2013-02-24 20:41:39

的函数已经存在而且是standard,这就是所谓的list-ref

(list-ref (list 'a 'b 'c 'd 'e 'f) 4) 
=> 'e 

从文档:

list-ref在pos位置,在列表中的第一个元素是位置返回地表温度的元素0.如果列表包含pos或更少的元素,则会引发exn:fail:contract异常。