我一直在尝试做一个返回n个集合的笛卡尔积的函数,在DrScheme中,集合以列表的形式给出,我一整天都在做这个,我想要一些指导方针,因为开始。
----稍后编辑-----
这是我想出的解决方案,我确信它不是迄今为止最有效或最简洁的,但我只学习了 3 周的方案,所以请对我放心。
这是一个简洁的实现,它还旨在通过共享组件列表的尾部来最小化内存中结果结构的大小。它使用 SRFI-1。
(define (cartesian-product . lists)
(fold-right (lambda (xs ys)
(append-map (lambda (x)
(map (lambda (y)
(cons x y))
ys))
xs))
'(())
lists))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)