gpt4 book ai didi

lisp - 以编程方式在函数中嵌入多个列表元素

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

我正在搞 web 开发,想做如下事情:

(defun col1 (&rest content) `((:DIV :CLASS "col1") 
(:COMMENT " Column 1 start ")
,content goes here
(:COMMENT " Column 1 end ")))

其中内容是函数返回的两个或多个列表:

(defun two-list () ....)

会返回

'(:H2 "header")
'(:P "paragraph")

这样

(col1 (two-list))

会回来

((:DIV :CLASS "col1") 
(:COMMENT " Column 1 start ")
(:H2 "header")
(:P "paragraph")
(:COMMENT " Column 1 end "))

我试过使用 values 函数,但它似乎只能将一个列表嵌入到内容区域中。有可能做这样的事情吗?感谢 lispers 的帮助,我在学习 Lisp 方面玩得很开心!

最佳答案

two-list 返回你想要嵌入的元素列表,比如 ((:H2 "header")(:P "paragraph")),然后是 col1 可以定义为:

(defun col1 (content) `((:DIV :CLASS "col1") 
(:COMMENT " Column 1 start ")
,@content ; goes here
(:COMMENT " Column 1 end ")))

(defun two-list () '((:H2 "header")(:P "paragraph")))

请注意,我从 col1 中删除了 &rest。如果你还想拥有你需要做的 (apply #'col1 (two-list)) 而不是 (col1 (two-list))

关于lisp - 以编程方式在函数中嵌入多个列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18730732/

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