新しいプログラム言語を学ぶと、必ずひとつか二つはうれしい発見がある。
Perl の場合は、正規表現や連想配列だったし、Rubyは簡単なクラスの作り方や、イテレータだった。この前から勉強し始めた関数言語では、高階関数や、遅延評価だ。 なんでうれしいのかというと、これらはみなモジュールなので、可変なパラメータを設定するだけで、複雑な処理が可能になるのだ。例えば sort など、「並べ替え」というふうに、現実生活のイメージはすぐにわくが、スクラッチからコンピュータにやらせようとすると、かなりの知識と時間を要求されるものだ。 モジュールはみな、共通部分と可変部分をもっている。共通部分をモジュール化してあるため、ユーザは可変部分のみ操作すればそれぞれの用途に使うことができる。プログラム言語の仕様と実装でモジュール化しやすい処理の種類が変わってくるが、いずれにしても共通部分と可変部分があるのは共通している。 しかし、このモジュールの性質は何もプログラミングに限ったことではないのだ。知識を習得するということはある意味モジュールの共通部分を理解して可変部分を操作できるようになるということと同義になる。 思考法がどうのこうのといっても、結局共通部分のパターンと可変部分のパラメータを見抜いて知識を利用できるようにするだけのことのではないのだろうか。 ものを考えるときに、共通な部分は何か、また、共通性を保ちながら違っている部分はなにか。可変部分の変化でどのような多様性が見られるのか、また、共通部分の縛りでどのような制限ができてくるのかなどと、共通部分と可変部分の相互作用のようなものを考えていくと角度のちがった見方や新しい発見ができるような気がする。
by tnomura9
| 2008-01-28 11:39
| 考えるということ
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||