Common Lisp
merge在语言标准中已经具有通用序列的功能,但仅适用于两个序列。对于升序排列的多个数字列表,可以在以下功能中使用它(97个基本字符)。
(defun m(&rest s) (如果(不是(cdr s)) (汽车) (应用#'m (cons(合并'list(car s)(cadr s ## <)) (cddr s)))))
编辑 :过一段时间后再访问:可以在一行中完成:
(defun multi-merge (&rest lists) (reduce (lambda (a b) (merge 'list a b #'<)) lists))
它有79个具有有意义名称的基本字符,将它们简化为一个字母,结果为61:
(defun m(&rest l)(reduce(lambda(a b)(merge 'list a b #'<))l))



