タグ イテレータ
人気順 10 users 50 users 100 users 500 users 1000 usersJavaScriptのイテレータ, イテラブル, ジェネレータを理解する!
お久しぶりです。GMOインサイトの天河です。 ついこの間、JavaScriptのジェネレータについて社内勉強会で発表したのでその内容をまとめます。 ※ 注意 本記事で言及している「ジェネレータ」はJavaScriptでの言語仕様です。一部通ずる箇所もあると思いますが、Python や C# など他の言語での使われ方についてはしかるべき... 続きを読む
イテレータを分岐させるとどうなる? Iterator Helpersに見るJavaScriptのイテレータの挙動
2024年10月のTC39ミーティングでは、Iterator HelpersがStage 4となり、ECMAScriptの仕様に追加されることが決定しました。Iterator HelpersはすでにGoogle Chromeなどで試すことができます。 Iterator Helpersは概してわかりやすい機能群ではありますが、やはり元々がJavaScriptということで、直観的には理解しがたい挙... 続きを読む
Go の iter パッケージを使ってみよう
はじめに Go 1.23 で iter パッケージが導入されました。この iter は抽象化されたイテレータを示す仕組みと実装です。未だどの様に活用して良いか分からない方もいると思いますので、使い方を簡単に解説しようと思います。 概念 iter パッケージは、現状は for-range でのみ利用可能です。スコープにコンテキストを持っ... 続きを読む
Go 1.23のイテレータについて知っておくべきこと
はじめに 2024年8月13日、Go 1.23がリリースされ、ついにイテレータが利用可能となりました。 この記事では、Goのイテレータについて、 どうやって使うのか どこまで知っておく必要があるのか を理解することをゴールとします。 基本的な知識 基本的な知識としては、以下の内容を知っていれば問題ないです。 for文のrang... 続きを読む
Python: ジェネレータをイテレータから理解する - CUBE SUGAR CONTAINER
2017 - 11 - 23 Python: ジェネレータをイテレータから理解する Python のイテレータとジェネレータという概念は意外と分かりにくい。 今回は、実は深い関わり合いを持った両者についてまとめてみることにする。 というのも、最終的にジェネレータを理解するにはイテレータへの理解が欠かせないためだ。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS ... 続きを読む
Vim script でジェネレータを作ったり、遅延評価してみる - ryota-ka's blog
2016 - 12 - 08 Vim script でジェネレータを作ったり、遅延評価してみる Vim Vim script ジェネレータ 遅延評価 イテレータ この記事は CAMPHOR- Advent Calendar 2016 8日目の記事です. はじめに 日本時間の2016年9月12日に, Vim 8.0 がリリースされた. Vim 7.4 のリリースからはおよそ3年振り, Vim 7.0... 続きを読む
PHP - コードをまとめる技術としてのイテレータとジェネレータ - Qiita [キータ]
ジェネレータが5.5から入ったことで完全に空気と化した(?)PHPのイテレータを、ちょっと違う面からまとめたいと思います。 コードをまとめるということ Don't Repeat Yourself(DRY)という言葉があります。達人プログラマーという本に出てくる言葉です。 信頼性の高いソフトウェアを開発して、開発そのものを簡単に理解したりメンテナンスできるようにする唯一の方法は、DRY原則に従うこと... 続きを読む
PHPのジェネレータはイテレータより速い - hnwの日記
先日の記事「PHPのジェネレータの実装を調べてみた」で僕は次のように書きました。 GeneratorクラスはIteratorインターフェースを実装しており、対応するPHPメソッドを持っています。また、Cで実装した場合のみ指定できるイテレータ関数も実装しています。このように両方が指定されている場合、foreachループではCの関数が呼ばれ、イテレータメソッドを明示的に指定した場合はPHPメソッドの方... 続きを読む
イテレータを介して見るPHPクラスの内部構造 - hnwの日記
PHPにはイテレータの仕組みがあります。イテレータクラスのインスタンスは、配列同様にforeach文でループを作ることができます。たとえば次の例を見てみましょう。 $iter = new SplQueue(); $iter[] = 1; $iter[] = 2; $iter[] = 3; $sum = 0; foreach ($iter as $v) { $sum += $v; } var_dum... 続きを読む
たった200行で作れるテトリス Ruby編 - a newcomer!
200行テトリス ソースコードはGithubから。 daic-h/tetris-rb 行数はなんと偶然にも()200行ピッタリ! イテレータの部分等でfor文で配列アクセスなんかやってられないので微妙に違いますが、 だいたい元ネタの機能や実装方法なんかそのまま移してあります。 実際に動かしている様子 tetris-rb from Daichi on Vimeo. StarRuby 今回描写環境とし... 続きを読む
グーグル、C/C++に代わる新言語「Go」をOSSで公開 − @IT
2009/11/11 グーグルは2009年11月10日、Cのようにシステム記述に適したプログラミング言語「Go」をBSDライセンスの下に公開した。C++ようなC言語の拡張ではないが、Cに似た構文が特徴で、ガベージコレクタ(GC)や並列プリミティブ、イテレータ、実行時リフレクションなどを備えた新しい設計が目を引く。Goはグーグルの社員7人が「20%の自由時間」を利用して開発した。設計・実装を行なって... 続きを読む
見直されるべきPHP5の組み込みイテレータ - hnwの日記
PHPには5.0.0以降SPL (Standard PHP Libray)という枠組みが導入されています。これにより、Iteratorインターフェースを実装したクラスのインスタンスであれば、foreach文で配列と同じように取り扱えます。自分でクラスを作るときもIteratorを実装すれば使うのが楽ですし、コードも読みやすくなると思います。 また、PHPに標準で組み込まれているクラスにはItera... 続きを読む
ITmedia エンタープライズ:第2回 サルでも分かるプログラミング言語の新潮流【後編】 (1/3)
プログラミング言語の進化を追え:第2回 サルでも分かるプログラミング言語の新潮流【後編】 (1/3) 「ガーベジコレクション」「リフレクション」「アスペクト指向」「クロージャ」「イテレータ」「型推論」など、近年、プログラミング言語の世界に新しい概念が続々となだれ込んでいるように見えます。しかし、この背景には、実はあまり知られていない歴史が隠されているのです。 [まつもとゆきひろ,ITmedia] ... 続きを読む
JavaScript 1.7 の新機能: Days on the Moon
Firefox 2 の新機能の一つに JavaScript 1.7 への対応がある。Firefox 2 Beta 2 のリリースも近づき JavaScript 1.7 の新機能もほとんどが実装されてきたのでここにまとめてみる。といっても New in JavaScript 1.7 に大体はまとまっているので補足的な部分など。 識別子の扱い ブロックスコープ 分割代入 イテレータ ジェネレータ 配列... 続きを読む