偏見、誤解、曲解など
「Basic, Basic, Basic! なこと」の続きみたいな。
次のような傾向がある。困ったことだとも言えるが、だいたいは致し方ないこと。
- プログラミング言語を通してしか概念や現象を見られない。
- ハードウェアとしてのコンピュータや、大粒度コンポネントからなるシステム構造などは、単一プログラミング言語では理解できないから、まったくダメ。
- 関数とか変数とかも、プログラミング言語の定義しか見えてない。
- モナドやクロージャも言語機能と思っている。
- 早い段階で習った概念は強い刷り込みになる。
- 集合/写像が強烈に刷り込まれているのは驚き。
- 集合/写像に強く縛られているが、実はその概念は曖昧。
- 写像を考えても、余域は考えてなかったり。
- 写像の同一性もハッキリと意識してない。
- 余域と像がゴッチャ。
- X→Y のとき、X=Y のケースを考えない。考えられない。
- X→X なんてないと思う。代入や状態遷移の定式化ができない。
- 引数は、構文上の引き数だけだと思っている。
- 戻り値は、構文上の戻り値だけだと思っている。
- メモリの上書き変更は関数じゃないと思っている。
- それゆえ、破壊的代入やデバイスとのIOは関数で定式化できないと思っている。
- X→X は idX しかないと思っている。
- 写像は、単射か全射のどちらかだと思っている。
- 集合圏で、cod(f)⊆dom(g) なら結合可能だと思っている。(致し方ない)
- a|→f(a) と f:X→Y がゴッチャ。(致し方ない)
- 関数そのものと、個別の値-値対応と、式が区別できない。(致し方ない)