moochan です. >ど〜も、中井と申します。 中井さん.ど〜もです. >>な〜る,ほ,ど〜.これは完璧に Ruby オリジナルだ.(と思う) >-------------------------------------- > >え〜と、Dylan と言う言語がありまして、それでも同じ様なことをして >います。 なるほど.そんな言語がありましたか(素晴らしい) # でも,Ruby みたいに OSS だったらもっといいのにね. >(パっと見は Ruby によく似ているので、Ruby が好き (& lispやscheme > も好き) な人は結構気に入るのではないかなと思います。違いと言えば、 > メソッドをマルチプル・ディスパッチするところですかね...、 > って、根本的な違いだったりして。 /[^o^] ) 具体的なURLをご紹介頂きありがとうございました. Webをざーっと流し見しましたが,Rubyと確かによく似ていますね. # 構文は言うに及ばずインデントの付け方までそっくり(^^) >ざっと要約しますと、 > 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 ) >ってな感じです。(甘〜い、糖衣構文ですよね :-) 大変分かり易い説明です. Dylanではすべてがオブジェクトであり関数もオブジェクトなのがよく分かりまし た. >個人的な感想ですが、(意見ってほどではないです) >等差数列の集合(immutable)の呼び方は > Python --> range > Dylan --> <range> > Smalltalk --> Interval >ですが、私は Interval の方が range よりも好ましく感じます。 おっしゃる通りです. Interval(間隔)は「等差数列とその集合」ですね. # しかも,有限集合.(あたぼうか) >ただし、Ruby の場合は、上記の等差数列の性格よりも、範囲の >性格が強い様なので range と言う呼び方が正しいですよね。 そうですね. Rangeは「領域」とか「区間」とかの意味でしょうから「連続領域」を扱うのが 相応しいと思います. ですから要素としては,自然数や整数ではなく「有理数」「実数」「複素数」あ たりになるのでしょう. # でもコンピュータは数学的「実数」を扱えないという矛盾を本質的に抱えてい # ますよね. >他の言語は、ただただ Iteration/Enumeration のために存在する >range/interval ですが、せっかく Ruby は値域と言うものを前面 >に押し出しているので、性格(クラス?)を分離した方がよい様に >おもいます。 まったくおっしゃるとおりです. # RangeとIntervalを別クラスに賛成一票(もーそーなってるっだっちゅーの) ># な〜んて、こちらのMLの方たちには、釈迦に説法ですね...(冷や汗;) 少なくとも私を除いて地球人じゃありません.みなさん宇宙人です(^^;;; --- moochan