You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用cons函数重构Common Lisp列表(1 3 ((2))(7))?

用cons构造嵌套列表的解决方案

你当前代码的问题出在第三个元素:目标列表的第三个元素是((2)),这是一个以(2)为唯一元素的列表,而你写的'(2)只是(2)本身,少了一层嵌套。

要构造((2)),需要先构造内层的(2),再把它作为元素放到新的列表里:

  • 构造(2):(cons '2 nil)
  • 把(2)作为元素构造((2)):(cons (cons '2 nil) nil)

把这个替换到你原来的代码里,就能得到目标列表:

(cons '1 
      (cons '3 
            (cons (cons (cons '2 nil) nil) 
                  (cons '(7) nil))))

如果要完全严格只用cons(不用'直接创建列表),'(7)也可以替换成(cons '7 nil),最终代码:

(cons '1 
      (cons '3 
            (cons (cons (cons '2 nil) nil) 
                  (cons (cons '7 nil) nil))))

运行这段代码,就能得到你想要的(1 3 ((2)) (7))。

内容的提问来源于stack exchange,提问作者CL-Beginner Zoni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:35:50