Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Common lisp 如何返回列表的中间元素?_Common Lisp - Fatal编程技术网

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 ...)))

试着通过展示你到目前为止所做的事情来提问,而不是问“如何…”或“去哪里…”并看一看