Lisp列表中的对子集的组合 [英] combination of pair subsets from a list in lisp

查看:85
本文介绍了Lisp列表中的对子集的组合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从conman lisp中的列表创建所有可能的对子集.例如,列表A包含四个元素

How to create all possible pairs subsets from a list in conman lisp. For example the list A contain four elements

list A= ("A" "B" "C" "D")  

the expected output is as follows:

(("A","B"),("A","C"), ("A","D"),("B","C"),("B","D"), ("C","D"))

有人可以帮我生成这些子集吗? 非常感谢

Could someone please help me out to generate these subsets. Thanks a lot

推荐答案

mapcar:

(defparameter a (list 1 2 3 4))
(mapcon (lambda (tail)
          (mapcar (lambda (x)
                    (cons (car tail) x))
                  (cdr tail)))
        a)
==> ((1 . 2) (1 . 3) (1 . 4) (2 . 3) (2 . 4) (3 . 4))

这篇关于Lisp列表中的对子集的组合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆