栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

代码高尔夫:将多个排序列表合并为一个排序列表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

代码高尔夫:将多个排序列表合并为一个排序列表

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))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617066.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号