タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Rubyと遅延評価に関するigrepのブックマーク (1)

  • 1つの値を遅延評価してみよう - Qiita

    Rubyで遅延評価」と言えば、Enumerator::Lazyをよく見かけますが、それ以外の手段を使うことになった話をしてみます。 遅延評価、とは Rubyを含め多くの言語では、a = foo(b)のようにすれば、foo(b)の処理が行われて、その結果がaに代入される、という挙動になります。これを先行評価といいます。 一方で、Haskellでは、(そもそも変数は再代入不可、関数も結果は引数のみで一意に決まる、という特徴があるからこその話という面も大きいですが)実際にaの値が必要となるまでfoo(b)の処理は行われません。これを遅延評価といいます。 遅延評価が便利な面 遅延評価にしてメリットがあることといえば、 無限リストや、ものすごく長いリストも簡便に扱える(Enumerator::Lazyもこれです) 引数に渡すために計算はしたけど、関数内で使わなかった…という余計な計算をカットできる

    1つの値を遅延評価してみよう - Qiita
  • 1