「コンパイラ・スクリプトエンジン」相談室6
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
700:デフォルトの名無しさん 05/07/12 00:25:38 >>693 Smalltalkにはブロックという概念があり、これがちょうどRubyの内部イテレータ(ブロック)に相当します。 Lispのmapとも似ていますが、どちらかというとSmalltalkのほうに似ているんじゃないでしょうか。 Smalltalkとの違いは、Rubyでは基本的にメソッド1つにつき1つのブロックしか渡せませんが、Smalltalkは複数のブロックを渡すことができることです。 なおRubyでは、昔は本当にイテレータとしてのみ使われていましたが、今は他の用途にもよく使われるため、現在ではブロックと呼ばれることが多いようです。 また「内部イテレータ」というのは使われ方の名称であって、機能としては「クロージャ」というのがプログラミング言語一般の用語です。 (「クロージャ」という機能を「内部イテレータ」として使うということ) 701:デフォルトの名無しさん 05/07/12 01:06:35 実装的にはイテレータとしてのみブロックを渡す場合は、 真面目にクロージャを作る場合よりも省略できる部分が、 結構あるんだよね。 あと、内部イテレータと外部イテレータにはそれぞれ、 長所と短所がある。簡便なのは内部イテレータだが、 複雑なイテレーションの場合は外部イテレータのほう が良い場合もある。 個人的なオススメはクロージャが扱えるオブジェクト 指向言語なら外部イテレータを基本に設計して、内部 イテレータはライブラリで用意する、というやり方。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5006日前に更新/221 KB
担当:undef