Skip to content

Instantly share code, notes, and snippets.

@deltam
Created January 27, 2011 06:27
Show Gist options
  • Save deltam/798153 to your computer and use it in GitHub Desktop.
Save deltam/798153 to your computer and use it in GitHub Desktop.
;; c.c.combinatorics/subsetsを使って、べき集合(Powerset)を作る
(use '[clojure.contrib.combinatorics :only (subsets)])
(subsets '())
;(())
(subsets '(1))
;(() (1))
(subsets '(1 2))
;(() (1) (2) (1 2))
(subsets '(1 2 3))
;(() (1) (2) (3) (1 2) (1 3) (2 3) (1 2 3))
;; ベクタでもOK
(subsets [])
;(())
(subsets [2 3])
;(() (2) (3) (2 3))
(subsets [2 3 [2 9]])
;(() (2) (3) ([2 9]) (2 3) (2 [2 9]) (3 [2 9]) (2 3 [2 9]))
;; 遅延シーケンスで返している
(type (subsets [1 2 3]))
;clojure.lang.LazySeq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment