■Swift
オンラインコンパイラ: https://swift.sandbox.bluemix.net/
extension Sequence { var array:[Iterator.Element] {get{return map{$0}}} }
let a = sequence(first:0){$0+1}
//A 問題なし
print("A:", a.prefix(10).array )
//B 問題なし
print("B:", a.prefix(10).map{$0*10}.array )
//C 死ぬ
print("C:", a.filter{3<$0}.prefix(10).array )
//C-2 lazy付けたら動く
print("C:", a.lazy.filter{3<$0}.prefix(10).array )
//D 死ぬ
print("D:", a.map{$0*10}.prefix(10).array )
//D-2 lazy付けてもコンパイル不可
print("D:", a.lazy.map{$0*10}.prefix(10).array )
//E
print("E:", a.map{$0*10}.filter{50<$0}.prefix(5).array )
//E-2 lazy付加+分割で何とか動く
do {
let a2 = a.lazy.map{$0*10}
let a3 = a2.filter{50<$0}
print("E:", a3.prefix(5).array )
}
Swift part10 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
786デフォルトの名無しさん (ワッチョイ 353c-2/Qz)
2017/06/01(木) 10:55:55.93ID:kPS6C5Z/0■ このスレッドは過去ログ倉庫に格納されています
