[#39863] forループの速度 — Masahiro Sato <msato@...>

15 messages 2004/07/20

[#39868] イテレータとfor文 — OOTANI TAKASHI <otn@...5.so-net.ne.jp>

大谷と申します。

31 messages 2004/07/20
[#39886] Re: イテレータとfor文 — Tietew <tietew-ml-ruby-list@...> 2004/07/21

[ruby-list:39917] Re: イテレータとfor文

From: OOTANI TAKASHI <otn@...5.so-net.ne.jp>
Date: 2004-07-24 03:58:39 UTC
List: ruby-list #39917
大谷です。
もうこれが最後かな。

From: KATO Kazuyoshi <kzys@users.sf.net>
Subject: [ruby-list:39914] Re: イテレータとfor文
Date: Sat, 24 Jul 2004 09:32:14 +0900
> こんにちは、和良です。
> いまさらですけど……。
SKIP 
> 現在、繰り返すブロック付きメソッド(いわゆるイテレータ)は for で書ける
> ことが多いです。
> しかし、繰り返さないブロック付きメソッドまで for で書くことは、他言語
> の習得者にとっては混乱を招いてしまう気がします。
> 
> 一般的な言語では "for" はループに使われていると思います。
> これを繰り返さないものにまで使うのはわかりやすいんでしょうか?

はい。その通りです。

そのあたりが、私が「イテレータとfor文」というSubjectを付け、
野分さん、まつもとさんが、最初の頃に、
> |・そもそもイテレータという名前が良くない。概念的にはもっと広い
> |  「名前のない関数を引数とするメソッド呼び出し」といったようなものなので
> |  メソッド的な表記にしている
> 
> だから、最近はイテレータと呼んでいません。正式(?)な名称は
> 「ブロック付きメソッド呼び出し」ですね。
書かれたようなところに現れていると思います。
つまり私は繰り返し実行のことしか考えてなかった。
「rubyを...の人」に対しては繰り返しでない「ブロック付きメソッド呼び出し」は
出来るだけ避けた書き方をするということですね。

私のさっきの記事で、
>しかし、「ブロック付メソッド呼び出し」の記法だけは、ruby独特なんで
と書きましたが、最初の記事の用語通り
<しかし、イテレータの記法だけは、ruby独特なんで
と書けば首尾一貫してたと思います。

あ、別に「ブロック付メソッド呼び出し」のうち、本質的に繰り返しのもの
だけを「イテレータ」と呼ぼうという主張ではないです。私の文章として
首尾一貫してたというだけのことです。


ついでに、繰り返さないfor文と言うと、世界で最も多いOSに実在して、
最近は、for /f "tokens=1-3 delims=:." %%A in ("%TIME%") do
等というループで無いfor文を書くことも多いですが確かに違和感ありです。
for文を文字列のデリミタによるsplit にも 使う無理やりな言語です。
-- 
OOTANI TAKASHI <otn@rc5.so-net.ne.jp>


In This Thread