Racket-一个将集合作为输入并输出其功率集合的函数

问题描述 投票:0回答:1

我正在尝试编写一个将集合作为参数并返回其幂集(也作为集合集)的函数。

示例用法:

(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的行上引发了错误:>

Thrown Error Message

我可以对我的函数做些什么以使其正确执行吗? [set-map”或“ lambda”似乎有问题吗?

我正在尝试编写一个函数,该函数接受一个集合作为参数并返回它的幂集,也返回一个集合。使用示例:(power-set(set 1 2));应该输出=>(set(set)(set ...

set scheme racket powerset
1个回答
2
投票

有两件事使您对所发布的代码感到悲伤:几个过程调用中参数的顺序以及一个过程调用的返回类型。

© www.soinside.com 2019 - 2024. All rights reserved.