ノート:イテレータ
イテレータではないもの について
[編集]perl の for(each) はイテレータではないと書いていますが、英語版では「暗黙のイテレータ」という扱いのようです。実際のところどっちなのでしょうか? --Cookie4869 2006年1月24日 (火) 22:07 (UTC)
- perl の for(each) に与える配列をリファレンスにすれば、イテレータとしても利用可能ですし、イテレータではないという文面を削除します。--Cookie4869 2006年2月7日 (火) 13:04 (UTC)
pythonの項目について
[編集]僕は詳細をわかってないのですが、このような記事があります。--ゆきち 2007年1月23日 (火) 09:03 (UTC)
内部イテレータと外部イテレータ
[編集]この項目で説明されている内部 (internal) と外部 (external) の区別は、広く知られたものとは異なっています。書き直しを提案します。
Wiki の発明者として、あるいはデザイン・パターンの一人者として知られる Cunningham 氏のページに解説があります。
内部イテレータは、反復を行う主体がイテレータのオブジェクト自体であり、イテレータの利用者は、ビジターオブジェクトをイテレータに対して与えるようになっています。イテレータは、特定のプロトコルに基づいて利用者の与えたビジターに対してメッセージを送ります (メソッドを呼び出します)。XML のイベント駆動型パーザ (SAX) などはその形態上、内部イテレータとみなされることがあります。利用者が内部イテレータの状態遷移をどのくらいコントロールできるかは実装や言語の機能によって異なりますが、多くの場合限定的です。
一方、外部イテレータは、反復を行う主体がイテレータの利用者であり、イテレータは、利用者から特定の操作が行われるたびに内部状態を更新します。イテレータの利用者は、利用するイテレータの設計上許される範囲で、任意のタイミングで反復を中断したり、再開したりすることができます。
foreach のような制御構造にコレクションを直接指定するやりかたは英語版にもありますが、implicit iterator (暗黙イテレータ) と呼ぶのが一般的だと思います。このとき、反復状態を保持するのが元のコレクションクラスなのか、文法上暗黙的に生成されるイテレータオブジェクトなのかは言語の仕様、および実装によって異なります。
追記: 署名をつけ忘れていました。ごめんなさい。 --Moriyoshi 2007年7月18日 (水) 23:52 (UTC)
いきなり強く出てしまったようで恐縮ですが、読みかえしてみると、問題なのは foreach という制御構造を内部イテレータとして紹介しているくだりだけのように思われましたので、当該部分のみの書き直しで、とりあえずは対応したいと思います。いかがでしょう? --Moriyoshi 2007年7月19日 (木) 00:18 (UTC)
抄訳or妙訳
[編集]大辞林と大辞泉によれば、抄訳という語はありますが妙訳という語はないようです。そのため版番52199393はリバートさせていただきました。--Meniv(会話) 2014年10月22日 (水) 13:20 (UTC)
- 辞書を情報源に「そんな語はない」と決め付けることは不可能です。また、抄訳のほうが却って意味が通らず、これは「軽妙な訳、すなわち妙訳」だと思いますよ。 --Tonbi_ko(会話) 2014年10月23日 (木) 20:57 (UTC)
- どちらかというと囲碁や将棋などの妙手の妙の意ですね。--MetaNest(会話) 2015年1月24日 (土) 23:45 (UTC)
- それも全部同じですね。 --Tonbi ko(会話) 2015年1月25日 (日) 00:11 (UTC)