gpt4 book ai didi

LISP(将列表中间的值加一)

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:42 24 4
gpt4 key购买 nike

我目前正在尝试创建一个将列表中间的值加 1 的函数。

Example: (add1 '(2 4 6 5 9)) -> (2 4 7 5 9)

此外,如果列表是偶数,则不返回任何内容。到目前为止,我有一个返回列表中间位置的函数。

(defun add1(aList)
(if (oddp (length aList)) (- (/ (length aList) 2) .5) 'EvenNumber))

示例:(add1 '(2 4 6 5 9)) -> 2.0

有没有办法使用此信息获取中间的值然后将其加 1。谢谢

最佳答案

给你:

(defun add-1 (list)
(let ((len (length list)))
(assert (oddp len) (list))
(incf (nth (/ (1- len) 2) list))))

替换assertwhen如果您不想在偶数长度列表上出现错误。

关于LISP(将列表中间的值加一),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28730518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com