merge
函数的逻辑是什么?
不是说如果判断返回true,则选择list1中的第一个元素,否则,则选择list2吗?
我被下面两句话搞糊涂了...
(合并'列表'(1)'(2)#'<)==>(1 2)
(合并'列表'(1)'(2)#'=)==>(1 2)
为什么他们得到相同的结果?
最佳答案
合并
的结果包含两个序列的所有元素。
如果谓词是 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)
合并的基本用例:合并两个排序序列将生成一个包含所有元素的排序序列。
CL-USER 63 > (merge 'list
'(1 2 6)
'(3 4 5)
#'<)
(1 2 3 4 5 6)
也适用于矢量:
CL-USER 64 > (merge 'vector
#(1 2 6)
#(3 4 5)
#'<)
#(1 2 3 4 5 6)
关于merge - 关于 Common Lisp 中的 MERGE 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27201890/