2012年08月19日makopi23のブログmakopi23が日々の生活で感じたことを気ままに綴るブログです。スタートHaskell2」に参加しました。スタートHaskell2」に参加してきました。PARTAKEhttp://partake.in/events/b531758c-3fed-43fb-a71f-6edbc2cbb9b4以下の書籍をテキストとした、セミナー形式と演習形式を組み合わせた勉強会なのです。Lipovača商品詳細を見る夏休みで11日(土)から大阪の実家に帰省してたんですが、今日の朝、新大阪駅発の新幹線で東京に戻ってきて、そのまま直行です。あ、ちなみに私、新幹線は必ず窓側の席を取るようにして、ずっと外眺めてます。夏の日差しの中、いろんな町の風景を新幹線の中から眺めていると、すごく旅してる気分になれるのです。窓側の席に空席が無い場合は、出発時刻を多少遅らせてでも窓側を取ります。長距離移動後に長時間の勉強会は、さすがに疲れました。荷物は重いし、座りすぎでマジ肩凝ったわ~---さて、今日は第6章と第7章が対象範囲です。前半2時間がセミナー形式で上記2章分の発表、そして約20分の休憩後、約2時間半の演習+LT発表がありました。さんとは、別の勉強会で一度会話したことあったはず。そんときは、ルービックキューブの会話をした覚えがあるんだけど、違ったかな。aomoriringo自分への覚書のため、6章で気になったフレーズを羅列してみます。インポートを解除できる。Haskellのモジュールを調べるのに、Hayoo!というものがある。(HackageとHoogleは知ってたが、Hayoo!は知らなかった。検索エンジンのGoogleとYahooを意識したネーミングですね。Hoogleは標準モジュールだけ検索できる。Hayoo!だと標準モジュール以外も検索できる。C言語とかだとcharは1バイトだが、HaskellのCharはUnicodeなので4バイトらしい。みたいな書き方はインスタンス宣言だけをimportするときに使う。foldl'でも第一引数の関数が遅延評価するとき、スタックオーバーフローとなることがある。module構文でエクスポートする関数を明記することが推奨されている。GHCが最適化して速くなることがあるから。複数のMainが定義できるように、Mainモジュールのみファイル名と一致しなくてもよい。モジュール名を省略した場合はMainモジュールと見なされる。import文が多いコードは、1モジュールに機能を詰め込みすぎな臭いがする。分割してimport文を減らすのが良い。@a_hisameさんは前回のTaPL読書会終了後の飲みで、向かいの席でした。そのときの会話で、出身大学がお互い近くであることがわかったこともあり、親近感がありますね。今日の発表は図を駆使して、わかりやすく説明しようという姿勢が随所に見られ、とてもわかりやすかったです。a-hisame自分への覚書のため、7章で気になったフレーズを羅列してみます。型引数Eitherで、Rightは「右」と「正しい」の両方の意味を兼ねている。モナドを学ぶと、この定義が上手くできていることが良くわかる。Eitherは、左が「間違い」で右が「正しい」という定義になっている。Show)前半2時間の発表が終わり、20分の休憩後は演習&LTの時間です。さんの「再帰の俯瞰図」です。自分への覚書のため、このLTで気になったフレーズを羅列してみます。再帰には「末尾再帰」と「一般的な再帰」の2種類がある。右に自分自身の関数が来る。末尾再帰はループと同じ力を持つ。ループはスタックを消費しないので、末尾再帰もスタックを消費しない。ループで書けるようなコードなのに一般的な再帰になっている場合は、引数を増やすことで末尾再帰にできる。一つ前ができたとしたら次はどうする?と考えることが再帰のポイント。両方とも知らなかったので、この機会に調べておこう。力の弱いものを使うべき。