先週の土曜日に開催されました。
内容を書くのが遅くなってしまいました。
また、オンライン中継を行なう予定でしたが、ネットワーク不調のため急遽中止ということになり、オンライン参加予定だった方、のぞいてみる予定だった方、すみませんでした。
しかし、Google WaveとSkypeを使ったオンライン自習会が開催されたようです。すげー。
あと前回、「裸に見えるジェネレータ」について話が出てましたが、@aharisuさんがクローン(?)を作ってました(笑)前回9LISPの次の日には作ったんだとか。しかもandroidアプリにしてました(笑)@aharisuさんはいつもすごい。
概要
- 今後の進め方について
- 前々回、前回の復習
- 問題を解いてみる
- クロージャ
- C#とかJavaとか
- オンライン参加
1.今後の進め方について
- 現在は高階関数をやっている
- 次(継続)に進むか?それとも高階関数について深めるか?
- もっと例題を解いてみたり、現実的な問題を解いてみよう
- SICPの図形言語とかどうかな?
- 次回までに高階関数、クロージャ関連の練習問題を探してみる
2.前々回、前回の復習
- 前々回
- The Little Schemer の rember(remove member), rember-f(高階関数) insertL, insertR, insert-g(高階関数)
- 前回
- map, fold, for-each を自前で定義してみる
- fold, unfold とか
3.問題を解いてみる
- ループを使わずに配列を逆順に
- ループを使わずに1~10の総和を
- xにf, gを適用させるcompose
- xにn回fを適用するrepeated
1は最近、2は以前流行ってたので。3, 4はSICPの2章から。
関数合成、curry化、部分的なcurry化など。
コードは例えば以下のようなもの。
4.クロージャ
- レキシカルスコープ
- クロージャの簡単な例
- counter など
- C#のクロージャだとステップデバッグでわかりやすい
- C#のラムダ式
- クロージャで簡易OO的なもの
- クロージャって、newしたクラスのインスタンスに似てるよね
- クロージャがあればOOできるしOOがあればクロージャできる
- map, for-each, fold の例、動作イメージなど
高階関数やクロージャに馴染みのない参加者の方もいます。ホワイトボードにたくさんSchemeのコードを書きました。
5.C#とかJavaとか
- Javaのインナークラスでクロージャもどきできるよね
- C#のクロージャも結局はインナークラスだよ
- C#でクロージャ書いてdisasmしてILのぞいて見よう
- クロージャをステップデバッグしてみよう
VSのステップデバッグわかりやすい。
オンライン参加
カメラ、多人数用のマイク、プロジェクターなど準備はできていたもののネットワーク不調によりネットできず断念。
- 自習会が開かれた模様
- Google Wave + Skype + Twitter
ネットワーク不調は改善されたようなので、次回こそは中継できそうです。
ちょ、なんで女性の裸(笑) >オンライン自習会のまとめ
返信削除