可換でない演算:関数

403 Forbiddenを読んで、最初は「可換って面倒がなくてすばらしい。学校はつまらんことにこだわるもんだな」とか単純に思っていたのだが、3個x50円/個=150円というのは、掛け算が中置演算子だから見過ごしがちだが、get_kingaku_num_price(3個、50個/円)という関数だと考えれば、get_kingaku_num_price(50円/個,3個)というのは確かにエラーだよな、と。
これを柔軟に処理するとなると、先日読んだ「Modern C++ Design」のダブルディスパッチが必要になったりするんだろう。
算数として教えるのは、個数→単価→金額 という関数に一本化したいんだろうな。これは、金額計算のプロセスを以下のように固定することで、覚えるべき手順を減らす効果が「あるかもしれない」(笑

  1. 物の数を数える
  2. 単価を調べる
  3. 数値としての掛け算をする(九九の表引きと足し算)

結構賢い小学生なら、結構納得しそうな気がする。そして、50円/個x3個でも同じ結果になるということに感銘を受けたり、、しないか(獏、、でも、C++で掛け算を実装しようとすると、感銘を受けざるを得ないんだよ>小学生達よ

Modern C++ Design―ジェネリック・プログラミングおよびデザイン・パターンを利用するための究極のテンプレート活用術 (C++ In‐Depth Series)

Modern C++ Design―ジェネリック・プログラミングおよびデザイン・パターンを利用するための究極のテンプレート活用術 (C++ In‐Depth Series)

  • 作者: アンドレイアレキサンドレスク,Andrei Alexandrescu,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2001/12
  • メディア: 単行本
  • 購入: 12人 クリック: 214回
  • この商品を含むブログ (101件) を見る

ちなみに僕はC++は一行も動かしたことはありません。純粋に耳学問(劇汗

追記:こういう話はConceptual Mathematicsに無かったっけ?

調べる気力なしというか⊥

Conceptual Mathematics: A First Introduction to Categories

Conceptual Mathematics: A First Introduction to Categories