最近の活動報告~「趣味でやるHaskell入門 講習会」

 みなさんこんにちは、2014年度入学のひるいしです。

 最近マトモな活動報告記事がなかったからとうとう潰れたと思いましたか? 俺も思ったよ

 とはいえ2016年度入学者以下の皆さんの大変な尽力の甲斐あって、最近はなんだかいい感じのサークル運営になってきたんじゃないかと思います。あとはOBOG・院生以上の皆さんが講習会をバンバン開いてくれたらな~(チラッチラッ)というわけで、言い出しっぺの私が一つ講習会をやったほうが良いなという運びになり、今回「趣味でやるHaskell講習会」全2回を行いました。スライドはこの記事の下のほうにありますので、ぜひ読んでみてください。

 さて、皆さんはプログラミングについてどういう印象を持っていますか? 私は「カネがかからなさそう」だから始めた記憶がありますが、他にも「好きなものを作れそう」だとか、「お金儲けができそう」だとか、あるいは「攻〇〇〇隊みたいで格好よさそう」だとか……。

 しかし現実は甘くありません。システムエンジニアになろうとしたがプログラミングが意味不明で退職する人が後を絶たないように、プログラミング自体はしばしば泥臭い作業の塊です。私も中学や高校の頃は「変数の中身がいつの間にか変わっているがどこで変わったのか分からない」「エラーが200個ぐらい表示されてるけどエラーの表示を読んでもどこを直せばよいのか全く分からない」「作り始めて三日ぐらい経つとソースコード全体がどういう構成になっているかあまり覚えておらず、条件分岐を派手に間違えたままなのに気づかない」「ドキュメントの読み方わからん」など、元がズボラな性格なのも相まって決して「作りたいものを作れた」とは言い難い状況だったことを覚えています。

 今回Haskellという言語を選んだのは、まさにそのような泥臭い作業の多くから(完全にではないものの)人間を解放しうるものであると考えたためです。最近では大学の教養課程でも簡単なプログラミングを扱う授業があり、そのような場でプログラミングの体験をされた方にとって、はじめは作りたいものを執拗に数式化して表現するHaskellの記法に困惑するかもしれませんが、実は作りたいものを数式化して表現することで却ってソースコードのわかりやすさや扱いやすさを保証していることを実感してもらえるのではないかと思っています(まぁ数式として美しいコードが必ずしも実用性を担保するわけではないけどな!)。

 そもそも数学に対してその「科学における論理のための表現手法としての側面」を無視して、かと言って別の価値を見出すわけでもなく、受験のための嫌がらせみたいに扱う人が多いのは良くないですね。僕昔やってた家庭教師の教え子に「数学が社会で何の役に立ってるかとかどうでもいいから俺が国立大に受かるようなテクニックを教えてくれ!」って怒られたんでまぁテクニックは教えたんですが頼むから大学受験以外に人生の価値をみつけてほしいと思いました。

そういうわけで以下にスライドを掲載します。何か疑問点や誤っている箇所があればコメント等で教えていただければ幸いです。


(タイトルをクリックするとブラウザ上で閲覧できる場合があります)

以下は教材です。Basic.hs.txtをBasic.hsにリネームして使ってください(文字コードはutf-8)。