4月28日 第12回勉強会 Satis function( ){ ... };を聞いてきた
ので、その内容をメモメモ
■実践F#関数型プログラミング入門
・技術評論社から出版した書籍をもとに
・ストリーミングOFFの理由→アカデミックを相手にしたくない
ACMのお年表から
FORTRAN 手続型 バッカス→チューリング賞
IPL 関数型プログラミング
→関数型は同じくらい古い
インパラティブパラダイム
宣言型
→論理型 PLANNER,Prolog
関数型
論理型 述語論理 どうする、なにを
手続き型とお作法が違う
宣言型:連立方程式のときかたをかくようなかんじ
手続き方と関数型まじわらない
日本の関数型
エリス→LISP専用機 なぜこの当時作られたのか?
専用機なんて、誰も買えない→研究者用
パーソナルコンピューターが出てきてから
宣言型パラダイム:リソースとパフォーマンス必要
Javascriptの関数型→プロトタイプオブジェクト
SQLも関数型→集合理論だけ特化
IF文、FOR文がある
関数型は、IF,FORいらないというか、ステートメントいらない
C言語でLIST処理をやる理由→集合を扱うものがない
関数型;集合型をあつかうのが前提
LIST,タプル→
IF文ではなく、IFファンクションである
IF関数=返す値が重要 型
関数→値を返す→文法チェックができる
バグが少ない=あいまいさを許容しないから
手続き型プログラミング
構造化プログラミング
モジュール化プログラミング
オブジェクト指向プログラミング
関数型プログラミング
→どれも影響を受けている
OCAMLでオブジェクト→書き換え不可
イミュータブル
並列→デッドロック→イミュータブルだと出ない
Qiitで関数型:たたかれてる→宗教論争:誰の立場で叩いている?
遅延実行→遅延評価:実現方法違う
・引数を取って値を返す
・同じ値が変える(参照透過性:副作用がない)→並列
副作用を持っているとバグになりやすい
古くからあるのに、なんでメジャーにならないのか?
・パラダイムが違う→いままでのやり方では失敗する
ラムダ式 りんく
パイプライン→オブザーバー
リアクティブ→関数型に端を発している
・目線を変えて勉強する
■(表題は書けなかった)
・宣伝から
みなさん、iphoneユーザーですね!統計によると・・・
・自己紹介
・映画の話
じくうのさけめ
・関数:集合
データと操作
手続き型:操作
関数型:データ
→関数:別の空間に行くため ワームホール
・ブラウザも一種の関数
ソースコードきまれば、画像決まるでしょ
・JS 関数型影響受けている
関数型
第一級
参照透過性
単一代入
型による制約
遅延評価
直和型 エラーハンドリングで関数を全域で扱えるか?
関数をモノとして扱えるだけで、いろいろできる
無名の関数を作って呼び出している
式=評価すると値になるモノ
関数を引数にとる関数
同じ関数を使いまわすのに有効
リスト処理に聞いてくる
関数を返す関数
・フレームワークを作りやすい
・ラップ
引数を関数としてわたし、関数を返す
ランダム:プログラム実行環境を引数にとっている
IO
カリー化
・1つの引数に変える
Yコンビねーたー
コールスタック→呼べる関数の上限
末尾再帰
パフォーマンス
遅いイメージ
パフォーマンス プロファイラーで採れる
イベント:時系列データ→一種のストリーム
■Introduction to Reactive Extensions
Without saying "functional" or "reactive"
・自己紹介
・今日はなさないこと
関数プログラミングの話もしません
アプリケーションアーキテクチャの話もしない
RxJSの推薦をするわけではない
・なにをするのか
プログラミングスタイル
・イベント
どこでも。イベントは集合
・イベントを購読して、フラグ管理
ReactiveX:イベントのマネージメント
・RxはC#から来た
ボルタ(votta)というプロジェクトからきた
エリックメイヤー
LINQ to Event
ネットフリックスのひと
RxをJavaにもってきて、オープンソース化
・Rxの構成要素
オブザーバブル
オペレーター
サブジェクト
Observable
値は向こうからとんでくるけど
ゼロから無限まで
オペレーター
Arrayの拡張メソッドみたいなもん
関数適用値返す
サブジェクト
Observableとして、購読できるが
スケジューラー
イベントループ
コンストラクタの生成後にとってくるとか
settimeoutなどの時間軸管理とか
プログラミングのキーポイント
おぶざーばぶるの定義
オペレーター
フィルター
変数に入れる
繰り返す
スキャンの実装
Rxはオブザーバーパターンの拡張
イテラブルとオブザーバー
ブロッキング:コスト高い
まとめ
・pushとpullは表と裏
・Rxはちょっと進化したオブザーバー
ので、その内容をメモメモ
■実践F#関数型プログラミング入門
・技術評論社から出版した書籍をもとに
・ストリーミングOFFの理由→アカデミックを相手にしたくない
ACMのお年表から
FORTRAN 手続型 バッカス→チューリング賞
IPL 関数型プログラミング
→関数型は同じくらい古い
インパラティブパラダイム
宣言型
→論理型 PLANNER,Prolog
関数型
論理型 述語論理 どうする、なにを
手続き型とお作法が違う
宣言型:連立方程式のときかたをかくようなかんじ
手続き方と関数型まじわらない
日本の関数型
エリス→LISP専用機 なぜこの当時作られたのか?
専用機なんて、誰も買えない→研究者用
パーソナルコンピューターが出てきてから
宣言型パラダイム:リソースとパフォーマンス必要
Javascriptの関数型→プロトタイプオブジェクト
SQLも関数型→集合理論だけ特化
IF文、FOR文がある
関数型は、IF,FORいらないというか、ステートメントいらない
C言語でLIST処理をやる理由→集合を扱うものがない
関数型;集合型をあつかうのが前提
LIST,タプル→
IF文ではなく、IFファンクションである
IF関数=返す値が重要 型
関数→値を返す→文法チェックができる
バグが少ない=あいまいさを許容しないから
手続き型プログラミング
構造化プログラミング
モジュール化プログラミング
オブジェクト指向プログラミング
関数型プログラミング
→どれも影響を受けている
OCAMLでオブジェクト→書き換え不可
イミュータブル
並列→デッドロック→イミュータブルだと出ない
Qiitで関数型:たたかれてる→宗教論争:誰の立場で叩いている?
遅延実行→遅延評価:実現方法違う
・引数を取って値を返す
・同じ値が変える(参照透過性:副作用がない)→並列
副作用を持っているとバグになりやすい
古くからあるのに、なんでメジャーにならないのか?
・パラダイムが違う→いままでのやり方では失敗する
ラムダ式 りんく
パイプライン→オブザーバー
リアクティブ→関数型に端を発している
・目線を変えて勉強する
■(表題は書けなかった)
・宣伝から
みなさん、iphoneユーザーですね!統計によると・・・
・自己紹介
・映画の話
じくうのさけめ
・関数:集合
データと操作
手続き型:操作
関数型:データ
→関数:別の空間に行くため ワームホール
・ブラウザも一種の関数
ソースコードきまれば、画像決まるでしょ
・JS 関数型影響受けている
関数型
第一級
参照透過性
単一代入
型による制約
遅延評価
直和型 エラーハンドリングで関数を全域で扱えるか?
関数をモノとして扱えるだけで、いろいろできる
無名の関数を作って呼び出している
式=評価すると値になるモノ
関数を引数にとる関数
同じ関数を使いまわすのに有効
リスト処理に聞いてくる
関数を返す関数
・フレームワークを作りやすい
・ラップ
引数を関数としてわたし、関数を返す
ランダム:プログラム実行環境を引数にとっている
IO
カリー化
・1つの引数に変える
Yコンビねーたー
コールスタック→呼べる関数の上限
末尾再帰
パフォーマンス
遅いイメージ
パフォーマンス プロファイラーで採れる
イベント:時系列データ→一種のストリーム
■Introduction to Reactive Extensions
Without saying "functional" or "reactive"
・自己紹介
・今日はなさないこと
関数プログラミングの話もしません
アプリケーションアーキテクチャの話もしない
RxJSの推薦をするわけではない
・なにをするのか
プログラミングスタイル
・イベント
どこでも。イベントは集合
・イベントを購読して、フラグ管理
ReactiveX:イベントのマネージメント
・RxはC#から来た
ボルタ(votta)というプロジェクトからきた
エリックメイヤー
LINQ to Event
ネットフリックスのひと
RxをJavaにもってきて、オープンソース化
・Rxの構成要素
オブザーバブル
オペレーター
サブジェクト
Observable
値は向こうからとんでくるけど
ゼロから無限まで
オペレーター
Arrayの拡張メソッドみたいなもん
関数適用値返す
サブジェクト
Observableとして、購読できるが
スケジューラー
イベントループ
コンストラクタの生成後にとってくるとか
settimeoutなどの時間軸管理とか
プログラミングのキーポイント
おぶざーばぶるの定義
オペレーター
フィルター
変数に入れる
繰り返す
スキャンの実装
Rxはオブザーバーパターンの拡張
イテラブルとオブザーバー
ブロッキング:コスト高い
まとめ
・pushとpullは表と裏
・Rxはちょっと進化したオブザーバー