gpt4 book ai didi

LISP递归配对?

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

我是 LISP 的新手,我正在尝试创建一个递归函数来对列表中的元素进行配对。我在函数的最后一部分添加了递归。

(defun pairup (L)
(cond((null L) nil))
(list (cons (car L) (cadr L)(pairup(cdr L)))))

我知道 (pairup(cdr L)))))) 会显示错误,因为它的第三个参数进入 cons。不确定如何再次添加函数 =/

输入:(配对'(1 2 3 4))

输出:((1 2) (3 4))

最佳答案

函数如下:

(defun pairup (l)
(cond ((null l) nil)
((null (cdr l)) (list l))
(t (cons (list (car l) (cadr l))
(pairup (cddr l))))))

(pairup '(1 2 3 4)) ; produces ((1 2) (3 4))
(pairup '(1 2 3)) ; produces ((1 2) (3))

注意 cond 的第二个分支是当只剩下一个元素时终止递归,如果初始列表有奇数个元素,这是必要的。 cond 的语法要求分支的第一个形式始终是一个条件,在最后一个分支中,条件是 t 以捕获所有其他情况。

关于LISP递归配对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35880858/

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