実家に帰るついでにふらっと立ち寄ります。
ってことで、札幌に向かっています。午前中は関数型都市忘年会に出席します。途中で退席予定です。
はじめての函数型プログラミング / @tadsan さん
- 関数とは f(x) = 3x + 2
- あるxに対して対応する値を返す
- このセッションでの表記は「函数」で統一
- 手続き型の例
- 言語によって設計思考が違う
- 函数型言語とは、λ計算の概念を論理的基盤
- 函数型言語 → LISP、ML、
- 手続き型の中の函数型
- Ruby, Python, JavaScript → 反復操作、函数の定義
- JavaScript => function, Ruby => lambda
- python => def と lambda と リスト内包表記
- lambda計算について → (λx. x + 2) 3 みたいなの
- Python でlambda計算
- チャーチ数の例
- RubyやPythonで函数型の考えに触れると、函数型言語に入りやすくなる
- Q. 関数型言語で好きなものはなんですか?
- A. F# と Haskell
- Q. Pythonでmap関数を避けたのはなぜ?
- A. Pythonの作者が使いたがってない。LISP的にしたくない。
- Q. どの函数型言語でもラムダ計算がベース?
- A. はい
- Q. 圏論はどうすればわかるの?
- A. 層圏トポスと清水本の圏論の章が日本語で平易
- Q. 末尾最適化がないと再帰はきつい
- A. はい。関数型言語なら大丈夫
最近書いた、関数型言語と関連する?C++プログラムの紹介 / @h_hiro_ さん
- Ubuntu 11 だとgcc4.5が入る。普通だとgcc4.3しか入らない
- 「与えられた文字列に対して、どの単語が何番目にあるかを示す連想配列を作る」
- 関数型言語では、メモリや実行速度より処理の実現方法を気にする
- Boost::split → 記法は簡単になるがコピーしているから却下
- 「fundoshi」"他人のふんどしでスモウをとる"
- fundoshi::string → コピーをせずに部分文字列を表現
- 長さの取り出し、文字列比較、ポインタの取得、など
- 自分で必要な部分のみ
- Ruby に慣れるとC++ はエレガントではない
- 記法にこだわりたい
- boostは頑張ってるっぽい。勉強したい
- 記法に拘るネタ(2)
ここで退室しました。運営の皆さん、ありがとうございました!