我正在尝试编写一个将集合作为参数并返回其幂集(也作为集合集)的函数。
示例用法:
(power-set (set 1 2))
; is supposed to output
=> (set (set) (set 1) (set 2) (set 1 2))
到目前为止,我所拥有的是:
(define (power-set st)
(if (set-empty? st) (set (set))
(let ((ps (power-set (set-rest st))))
(set-union ps
(set-map (lambda (subset)
(set-add (set-first st) subset))
ps)))))
但是,DrRacket在包含set-map
的行上引发了错误:>
我可以对我的函数做些什么以使其正确执行吗? [set-map
”或“ lambda
”似乎有问题吗?
我正在尝试编写一个函数,该函数接受一个集合作为参数并返回它的幂集,也返回一个集合。使用示例:(power-set(set 1 2));应该输出=>(set(set)(set ...
有两件事使您对所发布的代码感到悲伤:几个过程调用中参数的顺序以及一个过程调用的返回类型。