toyoshi さんに誘われて「ふつうのHaskellプログラミング」読書会@CSNagoyaに行ってきました。
感想を書くまでが勉強会!(読書会)と、どこかで読んだので書いておこう。
雰囲気
参加人数は自分を入れて7名。テキスト「ふつうのHaskellプログラミング」を第2章から1節ずつ1人が読み、サンプルのコードを実際に打ち込んで、実行。素朴な疑問などを話し合いつつ、解決しつつ、次の節へ 。という感じで読書会は進んでいき、第3章の最後まで終えることが出来ました。
21時頃には終えて懇親会へ。PerlでSNS作っちゃう不動産屋さん、OCaml でお仕事をされている方、自分と同じように業務系(?)の方、Web屋さん、などなど多種多様で面白かったです。
学んだこと
- main アクションから実行される。Haskell は大文字小文字を区別するため小文字の main であること。
- do 式で束ねる複数の(アクション)はインデントを揃える。この規則を「レイアウト」とか「オフサイドルール」と言う。これが噂のオフサイドルールかぁ。
- do 式を使うと上から順にアクションが実行される。
- リスト重要。文字列は文字のリスト。[] 空リスト。
- 「$」演算子。括弧に展開できる。これは結構好きかも。
- 型推論は個人的にコンパイラすげー。と思った。
- 関数定義は、「関数名 :: 第1引数 -> 第2引数 -> ・・・ -> 返り値の型」 必須ではない。
- [a] の時、a は型変数と言い「何でも来い」多相型。
- 「[a] -> a」の時、引数の型と返り値の型は同じじゃなきゃダメ。
- 高階関数。関数を引数にとる関数。map 関数だと「map :: (a -> b) -> [a] -> [b]」の「(a -> b)」が引数にとる関数の定義の条件。
- パターンマッチ。引数の値のパターンごとに関数定義を書くことができ、上から評価されパターンにマッチした関数が選ばれて実行される。
- リストに対するパターン。「(x:xs)」は、リストの最初の要素に x が、残りに xs が束縛される。定石っぽく覚えておく。
- Haskell には for や while がないので、これ使って再帰、再帰、再帰。
エレガントだなぁ。仕事でどうっていうレベルではなくて、純粋に楽しい。
勝手にふりかえり(KPT)
Keep・・・和やか雰囲気。質問しやすい。
Problem・・・意外に明るくないと言われたw 明るく音読します><
読むときに単純に読み上げるよりも自分の言葉でと言われたんですが、結構難しい。
Try・・・予習しとくと理解してる分、分かりやすい言葉で説明できるし、みんなのためにも良いかも><
次回は
隔週なので次回は、4/13(日)ですか。続きが楽しみー。もし興味を持たれた方は、まだ始まったばかりなので是非参加してください>< 詳しくはこちら。toyoshi さん、こんな感じで良いですか:-)
4月 1st, 2008 at 10:39:21
完全に取り残されたー >
4月 1st, 2008 at 14:11:56
花見で行くゆうてたやん
次回いこうぜ!