しげぽん日記

技術屋の魂は失わない

haskell

なんとなくhaskellに触れてみた。まだまだ全然理解できていないんだけどおもしろいと思う。組み込み屋としてはこういう言語に触れるのはなかなか大事なんじゃないかと思っている。もちろん組み込みに利用できるという意味ではなくて、こういう考え方そのものに触れる機会がそもそも少ないので視野を広げるという意味で。

とりあえず去年のGDDのスライドパズルでも解いてみようかと書き始めてみたものの…探索するアルゴリズムを全くノープランで全探索したら案の定時間だけくって全く動かない。そらそうだ。こういう時の組み込み屋のアプローチは「いかに高速に演算できるように最適化するか」だ。でも数学屋さんのアプローチはおそらく「いかにアルゴリズムを改良できるか」だと思う。

こうした組み込み屋的な考え方は、こうしたソフトウェア的な問題にぶつかった時に私がとるアプローチだけではなくて、実社会で私が問題にぶちあたった時にとるアプローチにも通じるものがあるんじゃないかと感じている。うまくやれば素早く目的に達する事ができるというものを、ひたすらカット&トライをできる限り素早く繰り返して目的に達する、というようなスタンスで物事に望んでいる気がする。

アルゴリズムを知る事で物事を解決できる人は本を読む。本の中に記されているアルゴリズムを自分が適用できるように行動する。

私は違う。本は読まない。なぜなら本を読んでも課題解決の方法が変わらないからだ。とにかくやってみる。ただこうした考え方も悪い事ばかりじゃない。なぜなら「やってみなくちゃわからない」とどんな場面でも臆する事がなくなるからだ。

ただ、最近はどんな場面でも臆する事なく、うまくいく時は他人のアルゴリズムを適用するっていうのがベストなんじゃないかと思っている。

なので、haskellでアルゴリズムを改良する考え方に触れる事で、普段の行動パターンが変えられるといいな、と思っている。