直積

http://homepage3.nifty.com/mogami/diary/d0511.html#12t1

  • 善とは無自覚な偽善の事である。
  • 無能は悪い事では無い。自分が有能だと勘違いしていない限りは。

ゲーム理論で利得を計算すると妙な戦略が正しくなると実にそう思います。僕は「偽善は悪いことでない、他人の損害を利得としない限りは。」と続けたい。
「分からないと言えることは何よりも優れている。」

あと、もう一点。

スカラーは1x1の行列だったりするのも変だ。それはC言語で言えば double a; と double a[1]; が混同されているみたいな物で、危険だ。静的言語ならsegmentation faultだ。動的型の言語なので処理系内部のif文でなんとかなっちゃってるけど。けど、それは悪if文の温床になっている。

C言語でいえば云々は理由付けとしておかしいと思います。
行列がスカラーの「加群」なのにも関わらず、1x1行列とスカラーを同一視しているから、1x1行列とNxM行列の間に妙な積が定義できることが問題なのだと思います。直積? う〜ん。そうすると、a*A+Aが定義できる場合とない場合がaによりますね。

Haskell がもう少し多くのクラスを細分して用意するといいと思う(例えば Num は現在 ring だけれども、加法群型とかあるといいよね)のと、任意の型に関数適用をオーバーライドできたらいいな(C++でいうところの operator() )と思うが、そういうことをやっているとおかしなことになるのかな。