GeneratorType generatorとは新しい要素を返す処理のことで、以下のGeneratorTypeプロトコルに従う。 class LineGenerator: GeneratorType { typealias Element = String var lines: [String] init(text: String) { self.lines = text.componentsSeparatedByString("\n") } func next() -> Element? { return lines.isEmpty ? nil : lines.removeAtIndex(0) } } let text = "いろはにほへと ちりぬるを\nわかよたれそ つねならむ\nういのおくやま けふこえて\nあさきゆめみし よひもせず" let generator1 = LineG