Common lisp 如何返回列表的中间元素?
假设元素数为奇数,如何定义返回列表中间元素的函数 (除最后一个元素外的所有元素)返回列表中除最后一个元素外的所有元素; (中间列表)返回列表的中间元素Common lisp 如何返回列表的中间元素?,common-lisp,Common Lisp,假设元素数为奇数,如何定义返回列表中间元素的函数 (除最后一个元素外的所有元素)返回列表中除最后一个元素外的所有元素; (中间列表)返回列表的中间元素 使用“cdr”和“all but last”来定义“中间”。这可能是一个家庭作业问题,希望您递归地解决问题。 您应该尝试区分递归的基本情况,以建立middle的一般定义。此外,我们坚持这个问题,并假设输入列表中总是有奇数个元素 那么首先,一个列表的中间有一个元素是什么 然后,假设您必须使用cdr和除最后一个之外的所有作为基本构造,请尝试在一般情况
使用“cdr”和“all but last”来定义“中间”。这可能是一个家庭作业问题,希望您递归地解决问题。 您应该尝试区分递归的基本情况,以建立
middle
的一般定义。此外,我们坚持这个问题,并假设输入列表中总是有奇数个元素
那么首先,一个列表的中间有一个元素是什么
然后,假设您必须使用cdr
和除最后一个之外的所有
作为基本构造,请尝试在一般情况下使用这些构造来定义问题。如何使用这些构造将问题简化为递归子问题?如何组合递归结果以生成结果
例如,尝试使用下一个奇数大小的列表,一个包含3个元素的列表,并尝试查看如何使用基本构造和递归调用找到中间元素
考虑元素A、E0、E1、…、EN、Z的列表。然后,该列表的中间与列表e0、e1、…、en的中间相同,即移除了第一个和最后一个元素的列表
你可以这样开始,然后填空:(defun middle (list)
(if (endp (cdr list))
...
(middle ...)))
试着通过展示你到目前为止所做的事情来提问,而不是问“如何…”或“去哪里…”并看一看