[過去ログ] PowerShell -Part 3 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
149
(2): 2018/11/01(木)00:33 ID:PBz6MbCm(1/3) AAS
>>138
PowerShell は遅延実行だったのか

Ruby では、外部イタレータのEnumerator なら遅延実行になる

Enumeratorから、to_a して配列の実体を作ると、全部読み込まれてしまうから、
ずっと、Enumeratorを返すメソッドをチェーンしていって、最後にストリーム処理する

Java のStream とか、C# のLinq みたいな感じ
158
(2): 2018/11/01(木)21:15 ID:PBz6MbCm(2/3) AAS
Ruby では、Enumerator::Lazy で、無限リストを遅延処理できる

(1..Float::INFINITY).lazy.map{ |n| n*2 }.first(5)
# => [2, 4, 6, 8, 10]

これをLazyなしだと、先に無限配列を実体化しようとして、フリーズする

(1..Float::INFINITY).map{ |n| n*2 }.first(5)
# => (実行が終わらない...)
161: 158 2018/11/01(木)23:09 ID:PBz6MbCm(3/3) AAS
Ruby では、内部イテレータのEnumerable と、外部イテレータのEnumerator がある

Enumeratorをメソッドチェーンしている間は、リストが実体化されないから、
Enumeratorで続けていって、最後に実体化する

内部イテレータは、イテレータ自身が繰り返し制御を行う。
一方、外部イテレータは、ユーザーが繰り返し制御を行う

外部イテレータでは、2つの配列を1つずつ進めたり、カスタマイズできる
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s