ど〜も、中井と申します。

--------------------------------------
moochan さんは書きました:
>>「属性の設定」風に見えるメソッドには末尾に = を付けた名前で
>>定義しておくと
>>
>>  obj.attr = 5
>>
>>のような一見代入風の構文でメソッドを呼び出せて気分が良いから
>>です.意味もストレートに伝わるような気がしません? 正しく使
>>いさえすれば.
>
>な〜る,ほ,ど〜.これは完璧に Ruby オリジナルだ.(と思う)
--------------------------------------

え〜と、Dylan と言う言語がありまして、それでも同じ様なことをして
います。
(パっと見は Ruby によく似ているので、Ruby が好き (& lispやscheme
  も好き) な人は結構気に入るのではないかなと思います。違いと言えば、
  メソッドをマルチプル・ディスパッチするところですかね...、
  って、根本的な違いだったりして。 /[^o^] )

日本語訳されたリファレンスマニュアルを公開されている方がいらっしゃ
いますので、ちょっと覗かせてもらいましょう。

目次
     http://www.hitachi-sk.co.jp/misc/Dylan/index.html

スロットの参照、配列の参照
     http://www.hitachi-sk.co.jp/misc/Dylan/Syntax/SpecialFctCallSyntax.html

代入
     http://www.hitachi-sk.co.jp/misc/Dylan/Variables/Assignment.html

ざっと要約しますと、

    obj.attr   <--->   attr( obj )

    col[ i ]   <--->   element( col, i )

    func( x, y, z ) := val
               <--->   func-setter( val, x, y, z )

なので、

    obj.attr := val
               <--->   attr( obj ) := val
               <--->   attr-setter( val, obj )

    col[ i ] := val
               <--->   element( col, i ) := val
               <--->   element-setter( val, val, obj )

ってな感じです。(甘〜い、糖衣構文ですよね :-)


あと、下記のページが Range/Interval の話の参考になるかもしれません
( クラス<collection>、クラス<range>、for 制御構文 )

     http://www.hitachi-sk.co.jp/misc/Dylan/Collections/Collections.html
     http://www.hitachi-sk.co.jp/misc/Dylan/Collections/InstantiableCollection.html
     http://www.hitachi-sk.co.jp/misc/Dylan/ControlConstructs/IterationConstructs.html


個人的な感想ですが、(意見ってほどではないです)

等差数列の集合(immutable)の呼び方は

  Python     -->  range
  Dylan      -->  <range>
  Smalltalk  -->  Interval

ですが、私は Interval の方が range よりも好ましく感じます。

ただし、Ruby の場合は、上記の等差数列の性格よりも、範囲の
性格が強い様なので range と言う呼び方が正しいですよね。

  (1,2,3,4,5) と言う集合に 3.14 は含まれないが
  (1 <= x <= 5) には 3.14 は含まれる

他の言語は、ただただ Iteration/Enumeration のために存在する
range/interval ですが、せっかく Ruby は値域と言うものを前面
に押し出しているので、性格(クラス?)を分離した方がよい様に
おもいます。

# な〜んて、こちらのMLの方たちには、釈迦に説法ですね...(冷や汗;)



あと、こちらも個人的な好みなんですが、添付ファイルよりも
本文中にあったほうが読みやすいので好きです。
--------------------------------------
># Intervalクラスを修正したのでポストしたいのですが,ファイル添付で対応
># し続けて構わないでしょうか ?
--------------------------------------


それでは、失礼いたします。

----
Takashi Nakai  nakai / m1.sys.to.casio.co.jp