Created
June 11, 2015 15:09
-
-
Save oisdk/96bc711a412f6382122f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension SequenceType where Generator.Element: SequenceType { | |
var everyOf: [[Generator.Element.Generator.Element]] { | |
var seqGen = self.generate() | |
return seqGen.next().map { | |
let fSeq = Array($0) | |
return AnySequence{seqGen}.everyOf.flatMap { | |
lSeq in fSeq.map{ [$0] + lSeq } | |
} | |
} ?? [[]] | |
} | |
} | |
extension SequenceType where Generator.Element: CollectionType { | |
var everyOf: [[Generator.Element.Generator.Element]] { | |
var seqGen = self.generate() | |
return seqGen.next().map { | |
fSeq in AnySequence{seqGen}.everyOf.flatMap { | |
lSeq in fSeq.map{ [$0] + lSeq } | |
} | |
} ?? [[]] | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment