Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
やりたいこと 関数型プログラミングの影響を受けて、 無限リストから条件を満たす値を得るような、宣言的実装をRubyで書いてみたい。 計算結果を次の計算に用いるような計算を、無限長のリストを生成する形で実装してみたい。 やったこと ブロックを遅延評価で無限回実行するための方法を調べました。 単純に書くなら、
[edit] 要約 each 以外のメソッドにも Enumerable の機能を提供するためのラッパークラスです。また、外部イテレータとしても使えます。 Enumerable モジュールは、 Module#include 先のクラスが持つ each メソッドを元に様々なメソッドを提供します。例えば Array#map は Array#each の繰り返しを元にして定義されます。 Enumerator を介することにより String#each_byte のような異なる名前のイテレータについても each と同様に Enumerable の機能を利用できます。 Enumerator を生成するには Enumerator.newあるいは Object#to_enum, Object#enum_for を利用します。また、一部のイテレータはブロックを渡さずに呼び出すと繰り返しを実行する代わりに
[edit] 要約 map や select などのメソッドの遅延評価版を提供するためのクラス。 動作は通常の Enumerator と同じですが、以下のメソッドが遅延評価を行う (つまり、配列ではなく Enumerator を返す) ように再定義されています。 map/collect flat_map/collect_concat filter_map select/find_all reject grep, grep_v take, take_while drop, drop_while slice_before, slice_after, slice_when chunk, chunk_while uniq compact zip (※互換性のため、ブロックを渡さないケースのみlazy) Lazyオブジェクトは、Enumerable#lazyメソッドによって生成されます。 Lazyか
Stop including Enumerable, return Enumerator instead … and check why 5600+ Rails engineers read also this Stop including Enumerable, return Enumerator instead Many times I have seen people including Enumerable module into their classes. But I cannot stop thinking that in many cases having methods such as each_with_index or take_while or minmax and many others that are available in Enumerable are n
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く