[#39325] File.fnmatch の改良について — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

はじめまして、山本です。

18 messages 2004/03/05

[#39429] trial version of Ruby/Tk — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

18 messages 2004/03/23
[#39454] Re: trial version of Ruby/Tk — "Shirai,Kaoru" <shirai@...> 2004/03/31

白井です。

[#39460] Re: trial version of Ruby/Tk — Hidetoshi NAGAI <nagai@...> 2004/04/01

永井@知能.九工大です.

[#39465] Re: trial version of Ruby/Tk — "Shirai,Kaoru" <shirai@...> 2004/04/01

白井です。

[#39466] Re: trial version of Ruby/Tk — Hidetoshi NAGAI <nagai@...> 2004/04/01

永井@知能.九工大です.

[#39453] Re: int/int in Ruby2? — Masaaki Sakano <mas@...>

坂野 正明です。

36 messages 2004/03/31
[#39455] Re: int/int in Ruby2? — NISHIMATSU Takeshi <t-nissie@...> 2004/03/31

西松と申します.

[#39470] Re: int/int in Ruby2? — Masaaki Sakano <mas@...> 2004/04/01

坂野 正明です。

[#39473] Re: int/int in Ruby2? — matz@... (Yukihiro Matsumoto) 2004/04/01

まつもと ゆきひろです

[#39484] Re: int/int in Ruby2? — Masaaki Sakano <mas@...> 2004/04/03

坂野 正明です。

[#39528] Re: int/int in Ruby2? — "T Akutsu" <locrian@...> 2004/04/09

あくつです。なんかわくわくしてきだぞ。(^^;)

[ruby-list:39411] Re: rubyの関数定義について

From: 竹花 文士 <ruby.mito@...>
Date: 2004-03-21 16:06:30 UTC
List: ruby-list #39411
 竹花 文士です。
 はじめまして。
 まさか、松本さんを引っ張り出すような事になるとは・・・。
 ちょっと、どきどきしてます。
 
>が、「見通しの良い書き方をサポートする言語仕様」というのはど
>のようなものを考えていらっしゃるかについては、大変興味があり
>ます。今後の参考のためにも是非聞かせていただきたいものです。

 今回の文章では、関数の先行宣言構文を思い描いて、発言をしています。(ちなみに、
今のところ、rubyで不便に思うのは、この件と、C++でいうデストラクターの構文が見
あたらないことくらいですけど。後者に関しては、メソッドのブロック付き呼び出しで
対応するのが流儀なのかなと思っています。)
 
 たとえにあがっている、Cの関数の先行宣言構文でも、使う「義務」は有りませんか
ら、詳細(サブルーチン・関数)を全部書いてから、メイン部分を書くこともできるわ
けですが、プログラミングスタイル上の問題として、多数の人は、先行宣言をして、
main関数を書いた後にサブルーチンとなる関数定義を記述しますよね。プログラムの大
枠となるmain関数は、できるだけ、最初の方に有った方がプログラムの流れがつかみや
すいというのは、私だけの思いでもないということでしょう。(詳細が先に読みたいと
いうスタイルが好きなら、Cでも禁止されているわけではありません。)
 そんな意味合いでの言語のサポートと書いたつもりでした。

 いかに、言語できれいなソースが書けるように部品が用意されていても、それをどう
使って読みやすいソースを書くかは、書く人の感性ですから、それを強制する必要は無
いでしょうし、そもそも不可能でしょう。その点は、松本さんの発言に同感です。
 部品としては、クラス構文・関数、rubyでおもしろいなぁと思ったのは、ブロック付
きメソッド呼び出し、attr_accessor構文、今回の事例の先行宣言構文 等、そんなイ
メージです。これをどう使うかは、それこそ、個人個人の感性でしょう。
 
 その点から、rubyの構文を見ると、関数の定義をまず最初に書くことが強制されてい
るようにみえます。(勉強不足かもしれませんが)Cで言えば、先行宣言をせず、関数
定義を全部書いてから最後にmain関数を書くスタイルでしか書けないということです。

 別に、先行宣言でなくても、関数・クラスの定義よりも前に、その関数・クラスを使
用する方法が構文上に有れば、それで良いわけですが、話の流れから、頭の中には、先
行宣言が浮かんでいます。(まぁ、先行宣言無しで、言語を実装するとなると、今度は、
コンピュータが全部のファイルをいったん総なめしてすべての関数・クラスリストを生
成してから、処理を開始することになり、ちょっと非現実的かもしれませんけど。)

 今回の事例では、requirで逃げるというのは、これを回避するために私は多用してい
る、ひとつの手段ですが、一つ二つのルーチンのために、わざわざファイルを分割する
となると、それはそれで、管理するファイルが増えるだけ面倒なことがあります。
 メイン処理の為のクラスを定義するのも気がついてはいましたが、どうも、メイン処
理関数(または、「ルーチン」)をオブジェクトとして定義するというのに、ちょっと
違和感を感じ、まだこの構成はしたことがありません。

 そんなイメージで、先の文章を書かせて頂きました。ひとつの雑感として解釈しても
らえば結構です。
 これを実装するために、全体的に、宣言を強制せず、型に関して非常に緩やかな(こ
れに関しては、とっても便利に感じます。)構文の基本が壊れるとかえって残念ですか
ら。
 
 長文な上、どうも、文章がだらだらしてしまいましたが、ご容赦ください。
 それでは、失礼します。

---------------------------------------------
                竹花 文士(ruby.mito@laki.jp)


In This Thread