From: Motomichi Matsuzaki Date: 1999-12-10T04:04:09+09:00 Subject: [ruby-list:19351] Re: オブジェクトの代入について 松崎です。 At Fri, 10 Dec 1999 01:30:34 +0900, Ogino Junya wrote: > 通例では + で表わされる演算は可換(a+b=b+a)だから、字面からは > □□□ + ■■■■ = ■■■■ + □□□ > こういう働きが想像されるけれど、'つなげる'操作ではこれが > 成り立たないということで自然、自然じゃないを判断してるのだと > 思うです。 これはおかしいですよ。 > 普通 * の記号で想像される積演算は一般には可換とは限らない > (たまたま整数ではa*b=b*aだが)から、'つなげる'を * にすると > 演算子の性質を反映出来て、またそこから自然に ** が'繰返し'に > なることが想像出来る、という。 たまたま整数では a+b=b+a なだけですもの。 ほかの場合でも可換な場合が多いというだけで、 「 + 」という演算子は可換であるなんてどこにも決まってないのでは? ごくごく一般的な、義務教育の範囲内で考えれば、 「 * 」だって可換であることが自然だと思いますよ。 可換でない積というのは、代数幾何をやってからでしょう。 同じように、たまたま可換でない和が思い当たらないというだけで、 「 + は可換である」と結論づけるのはどうかと思います。 たとえば、算数の文章題で加法をあつかうときに、 「4人と3人、あわせて何人?」ということもありますが、 「4人遊んでいるところに、3人増えました。今は何人ですか?」 という意味づけとして可換でないケースもあるわけです。 数の扱いとしてはこの2例は同等ですが、 意味づけは明らかに異なりますよね。 可換とは限らないといえませんか? 同様に積の場合も、「4の3倍」と「3の4倍」では意味づけが異なります。 数としては同等でも、 object としては意味が違うんです。 そこで、 + が結合なら、繰り返しは * だというのは、 算数的に考えても自然だと思います。 そして、 * が結合なら、繰り返しは ** だというのも、 やはり自然でしょうね。方程式書法を考えてみれば、 a * b = ab だし、 a ** 3 = aaa だし。 でも、 a * b = ab = ba = b * a なんですよね。 これなら a + b = b + a と大差ありません。 結局どちらも同じくらい自然で、同じくらい不自然なんです。 さて、そこで、「文字列の結合」という操作が、 「文字列の和」と「文字列の積」とどちらに近いかといえば、 現実的な意味づけとしては圧倒的に「文字列の和」だと思います。 積になるのは方程式書法くらいなものです。 としたら、文字列の結合は a + b で妥当、と思いますがいかかでしょう? -- +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ | 松崎 素道 (Motomichi Matsuzaki/maki) 東京大学理学部生物学科4年 | | mailto:mzaki@e-mail.ne.jp 細胞生理化学研究室所属 | +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+