「Haskell 入門ハンズオン in 明石」を主催したよ #AkashiHaskell

すごい Haskell たのしく学ぼう!」を読んで Haskell 楽しいなぁ。人にもすすめたいなぁ。でも、すすめても実際やってくれる人少ないよなぁ。なら、僕が直接教えよう。というわけで、ハンズオンすることになった。
2012/10/28(Sun) 13:15-16:45 Haskell 入門ハンズオン in 明石 #AkashiHaskell - connpass

14人も集まった

明石だし Haskell だし集まって1桁人だろうなと思ってたところ14人も集まった。おお。定員は23人に設定してたけど実際あの部屋23人はきつそうだった。消防法的に定員は24人の部屋だったみたい。

方針

今回の方針は、

  • Haskell の全くの初心者、関数型プログラミングを全く知らない人でも分かるように
  • 何らかのまとまったプログラムを作ることを目標に
  • その目標に必要のないものは省く
全くの初心者向けに

Haskell で IO となるとモナドが絡んでくるので、GHCi(Haskell の対話環境)で済ます。カリー化や部分適用など難しそうな言葉は隠す。再帰よりは畳み込みを使う。など。

目標のプログラム

せっかくハンズオンするんだから何か作った方がやりがいあるよな、となんとなく思ったから。今回は逆ポーランド記法の式の計算機を作った。

その目標に必要のないものは省く

時間の制約もあるし説明は最小限に。また、必要のないことまで説明してそこで参加者が悩んでしまうことのないように。

場所

あかし男女共同参画センター
駅から近いところだったし、手頃な値段だったしなかなかよかったとんじゃないかな。

ハンズオン

時間のこときちんと考えずに資料作ったわりにはなかなかいい時間だったと自画自賛。45分ぐらい余ったけど足らないより全然いい。ちなみに勉強会の時間は3時間半の予定だった。
質問もしてくれてよかったね。
GHCi ではまったところは、

  • バージョン6系で :{、:} が使えない
  • 改行が CR のソースをロードできない
  • もっと一般化できるはずの型推論が特定のものにされる(Floating a => a -> a でいけるはずのところが Double -> Double になるとか)

とか。
:{、:} はファイルに書き込んでロードすることで解決。Debian のパッケージはまだ6系だったらしい。

懇親会

明石で上質なお肉をリーズナブルに。焼肉店「樂(らく)」忘年会にも。
懇親会は適当に見繕ったわりに普通によかった。せっかくだから玉子焼き(明石焼き)食べたいよねってことで選んだんだけど。1人頭1800円だったしね。お安い。