Merge 关于Common Lisp中的函数合并

Merge 关于Common Lisp中的函数合并,merge,common-lisp,Merge,Common Lisp,“合并”功能的逻辑是什么 如果判断结果为true,则选择列表1中的第一个元素,如果为false,则选择列表2,这不是吗 我被下面的两句话弄糊涂了 (合并"名单"(1)(2)"(12) (合并‘列表’(1)’(2)#’===>(12) 为什么它们得到相同的结果?合并的结果包含两个序列的所有元素 如果谓词是T,那么第一个元素放在第一位 CL-USER 57 > (merge 'list (list 1 2) (li

“合并”功能的逻辑是什么

如果判断结果为true,则选择列表1中的第一个元素,如果为false,则选择列表2,这不是吗

我被下面的两句话弄糊涂了

(合并"名单"(1)(2)"(12)

(合并‘列表’(1)’(2)#’===>(12)


为什么它们得到相同的结果?

合并的结果包含两个序列的所有元素

如果谓词是T,那么第一个元素放在第一位

CL-USER 57 > (merge 'list
                    (list 1 2)
                    (list 2 1)
                    #'<)
(1 2 2 1)

CL-USER 58 > (merge 'list
                    (list 1 2)
                    (list 2 1)
                    #'=)
(1 2 2 1)

CL-USER 59 > (merge 'list
                    (list 1 2)
                    (list 2 1)
                    #'>)
(2 1 2 1)
也适用于vector:

CL-USER 64 > (merge 'vector
                    #(1 2 6)
                    #(3 4 5)
                    #'<)
#(1 2 3 4 5 6)
CL-USER 64>(合并”向量
#(1 2 6)
#(3 4 5)

#'函数merge与merge sort类似吗?谓词是否在每个列表中的两个第一个元素之间施加?@chaosink:
merge
的基本用例是:合并两个已排序的列表以创建包含两个列表的所有元素的已排序结果列表。
CL-USER 64 > (merge 'vector
                    #(1 2 6)
                    #(3 4 5)
                    #'<)
#(1 2 3 4 5 6)