2011-02-07

学校で習う減算記号は左結合か

(-)はassociativityを満たさないのにa-b-cみたいに括弧を省略して書いちゃうのが習慣になってるのはどうなんだろう。小学校の頃から今まで宿題やテストやレポートの中でも指摘されたことが無い気がする。

Twitter / 梶本裕介

左結合だと仮定してると言われたことも無い気がする。忘れてるだけかもしれないけど。

Twitter / 梶本裕介

そういえばそうだ。減算記号は、結合法則(Associativity)と交換法則(Commutativity)を満たさない。しかし、私は小学校の算数で引き算を習うとき、左結合(Left-associative)かつAnticommutativityであると習った覚えはない。

しかし調べてみると、結合法則、交換法則、分配法則(Distributivity)は、小4か小5で習うらしい。うーむ、たしかに私は数学が苦手な方ではあったが、交換法則と分配法則は習った記憶がある。しかし、結合法則だけは、しっかり習った覚えがないし、プログラミングを始めるまで、演算子の結合法則を気にしたことがない。「左から右に計算するんだよー」と言われたことがあっただろうか。例えあったにしても、やはり、交換法則や分配法則ほど、しっかりと汎用的に教わった覚えがない。

ともかく、コレをきっかけに、CommutativityとDistributivityという英単語を学ぶことができた。

2 comments:

Anonymous said...

引き算も、最初は、"a - b" という二つの項に対して、「a から b を引く」と教えているので、引き算は、左結合であることを習っているのです。
また、3項の場合でも、"a - b - c" は、「"a - b"を行って、その後 cを引く。」 として教えているので、左から順に演算を行うことを、一応、教えているんですけどね。

Anonymous said...

なぜかしらないが、学校で先生に質問したのを覚えてる。