Submit Search
Upload
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
•
0 likes
•
921 views
Kohei Taniguchi
Follow
飯塚関数型言語勉強会vol.1の資料です。
Read less
Read more
Software
Report
Share
Report
Share
1 of 37
Download now
Download to read offline
Recommended
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#
ssusera3d157
プログラミング言語は怖くない
プログラミング言語は怖くない
Shoichi Matsuda
俺と前回敗因から分析するバッドパターン
俺と前回敗因から分析するバッドパターン
Masayuki KaToH
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Shinichi Okada
あと一つプログラミング言語を 覚えたら死ぬ! 脳みそがパンクしそうな あなたのための nodeJSことはじめ
あと一つプログラミング言語を 覚えたら死ぬ! 脳みそがパンクしそうな あなたのための nodeJSことはじめ
文樹 高橋
アプリ制作マスターへの道
アプリ制作マスターへの道
Masayuki KaToH
Ruby Introduction
Ruby Introduction
YushiroDodo
Python勉強会 2015-12-02
Python勉強会 2015-12-02
WoodPecker (Shizuoka Univ)
Recommended
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#
ssusera3d157
プログラミング言語は怖くない
プログラミング言語は怖くない
Shoichi Matsuda
俺と前回敗因から分析するバッドパターン
俺と前回敗因から分析するバッドパターン
Masayuki KaToH
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Shinichi Okada
あと一つプログラミング言語を 覚えたら死ぬ! 脳みそがパンクしそうな あなたのための nodeJSことはじめ
あと一つプログラミング言語を 覚えたら死ぬ! 脳みそがパンクしそうな あなたのための nodeJSことはじめ
文樹 高橋
アプリ制作マスターへの道
アプリ制作マスターへの道
Masayuki KaToH
Ruby Introduction
Ruby Introduction
YushiroDodo
Python勉強会 2015-12-02
Python勉強会 2015-12-02
WoodPecker (Shizuoka Univ)
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"
Ryohei Suzuki
プロ生Lt20130622
プロ生Lt20130622
erthejp
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
77web
解り方と教え方
解り方と教え方
健人 井関
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
無名関数のすすめ
無名関数のすすめ
Shoichi Kakizaki
TalknoteとGolang
TalknoteとGolang
leverages_event
俺とコミュニティ活動のタスク
俺とコミュニティ活動のタスク
Masayuki KaToH
Trunk0125資料
Trunk0125資料
颯人 小柳
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobody
azuma satoshi
Kotlin as an AltJS
Kotlin as an AltJS
Shinya Mochida
Requestsで始める5分前帰社
Requestsで始める5分前帰社
Satoshi Yamada
Alluren of prototype-based OOP
Alluren of prototype-based OOP
azuma satoshi
TensorFlowで訓練したLINE BotをAWS Lambdaで動かしてみた
TensorFlowで訓練したLINE BotをAWS Lambdaで動かしてみた
Van Huy
Cap01
Cap01
遼太郎 浦郷
bottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアル
Satoshi Yamada
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
Takako Miyagawa
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
Wataru Terada
楽しいプログラミング
楽しいプログラミング
明洋 庄司
Sinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPython
kuroneko1988
複数人でSwift開発を行うには
複数人でSwift開発を行うには
Yuya Fujiwara
Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!
Ouka Yuka
More Related Content
What's hot
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"
Ryohei Suzuki
プロ生Lt20130622
プロ生Lt20130622
erthejp
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
77web
解り方と教え方
解り方と教え方
健人 井関
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
無名関数のすすめ
無名関数のすすめ
Shoichi Kakizaki
TalknoteとGolang
TalknoteとGolang
leverages_event
俺とコミュニティ活動のタスク
俺とコミュニティ活動のタスク
Masayuki KaToH
Trunk0125資料
Trunk0125資料
颯人 小柳
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobody
azuma satoshi
Kotlin as an AltJS
Kotlin as an AltJS
Shinya Mochida
Requestsで始める5分前帰社
Requestsで始める5分前帰社
Satoshi Yamada
Alluren of prototype-based OOP
Alluren of prototype-based OOP
azuma satoshi
TensorFlowで訓練したLINE BotをAWS Lambdaで動かしてみた
TensorFlowで訓練したLINE BotをAWS Lambdaで動かしてみた
Van Huy
Cap01
Cap01
遼太郎 浦郷
bottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアル
Satoshi Yamada
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
Takako Miyagawa
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
Wataru Terada
楽しいプログラミング
楽しいプログラミング
明洋 庄司
Sinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPython
kuroneko1988
What's hot
(20)
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"
プロ生Lt20130622
プロ生Lt20130622
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
解り方と教え方
解り方と教え方
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
無名関数のすすめ
無名関数のすすめ
TalknoteとGolang
TalknoteとGolang
俺とコミュニティ活動のタスク
俺とコミュニティ活動のタスク
Trunk0125資料
Trunk0125資料
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobody
Kotlin as an AltJS
Kotlin as an AltJS
Requestsで始める5分前帰社
Requestsで始める5分前帰社
Alluren of prototype-based OOP
Alluren of prototype-based OOP
TensorFlowで訓練したLINE BotをAWS Lambdaで動かしてみた
TensorFlowで訓練したLINE BotをAWS Lambdaで動かしてみた
Cap01
Cap01
bottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアル
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
楽しいプログラミング
楽しいプログラミング
Sinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPython
Similar to オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
複数人でSwift開発を行うには
複数人でSwift開発を行うには
Yuya Fujiwara
Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!
Ouka Yuka
Go で Unit Test をやってみた
Go で Unit Test をやってみた
Masahiro Yanou
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Roy Kim
PHPカンファレンス2015
PHPカンファレンス2015
Daisuke Kasuya
LT#6 Taskete
LT#6 Taskete
Shingo Inoue
概観テキストマイニング
概観テキストマイニング
tod esking
React+fluxを導入した話
React+fluxを導入した話
Yuki Ishikawa
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Drecom Co., Ltd.
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
Yutaka Kachi
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
Swiftのクロージャー
Swiftのクロージャー
SatoTakeshi
プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会
nemumu
[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来
Masahiro Nishimi
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
Satoru Kodaira
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
Satoru Kodaira
three.jsによる一歩進めたグラフィカルな表現
three.jsによる一歩進めたグラフィカルな表現
Kei Yagi
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
Tomoki Hasegawa
JavaScriptと関数型言語
JavaScriptと関数型言語
Hideaki Miyake
Similar to オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
(20)
複数人でSwift開発を行うには
複数人でSwift開発を行うには
Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!
Go で Unit Test をやってみた
Go で Unit Test をやってみた
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
PHPカンファレンス2015
PHPカンファレンス2015
LT#6 Taskete
LT#6 Taskete
概観テキストマイニング
概観テキストマイニング
React+fluxを導入した話
React+fluxを導入した話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Swiftのクロージャー
Swiftのクロージャー
プログラミング同好会とすごい合同勉強会
プログラミング同好会とすごい合同勉強会
[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
three.jsによる一歩進めたグラフィカルな表現
three.jsによる一歩進めたグラフィカルな表現
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
JavaScriptと関数型言語
JavaScriptと関数型言語
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
1.
オブジェクト指向プログラマ が今関数型言語を学ばないと いけない理由 `
2.
谷口耕平 @ran_tan ハウインターナショナル で働いてます 九工大 知能情報工学科卒 自己紹介 現在 2010.03 小出研、工大祭実行委員、SE塾
3.
毎週木曜日 ココで 開催中!!
4.
普段書いている言語 • Ruby • Javascript,
CoffeeScript • Swift, Objective-C • Java
5.
関数型言語は全く 書いていません。。。
6.
今日はOOPプログラマを自認する私が、な ぜ関数型言語を勉強したいのかを話します
7.
関数型言語が流行ってる?
8.
Githubのリポジトリ数
9.
Githubのリポジトリ数
10.
Githubのリポジトリ数
11.
関数型流行ってる?
12.
Google Trends を見れば流行っているのがわかるはず!
13.
14.
15.
X軸と同化した、、
16.
もしかして 流行ってない?
17.
18.
数年前,Dave Thomas氏に会ったときに「Ruby の次のLotYに何を選んだのか」と聞いてみたと ころ「Haskellを試そうとした。でも,次に考え てるのは日本語だよ」と笑顔で答えてくれました。 http://itpro.nikkeibp.co.jp/article/COLUMN/20070618/275142/ 総論 複数のプログラミング言語を学ぶ意義
19.
Dave Thomasも Haskellに注目している! (かなり昔の記事だけど、、)
20.
21.
「Haskellを学ぶ事は、TDDを細かく分析し、それへ 回帰する事を強いる。原則は私が懸念していたよりも 根元的なものだった。」 適当和訳
22.
よくわからんけどHaskellや るとTDDも深まるらしい
23.
関数型言語流行の背景
24.
ムーアの法則の限界 • クロック数の頭打ち • それによるマルチコア化の流れ •
並行プログラミングへの需要 • OOP言語での並行処理の書きにくさ • 関数型言語の参照透過性という性質への注目 とかが世の中でよく言われている
25.
Erlangへの注目 • Prologのような宣言的な構文で記述 • スレッド間でメモリを共有しないスレッドモデル •
並行処理を前提に設計されている
26.
Scalaの登場 • JVM上で動作 • オブジェクト指向と関数型のマルチパラダイム •
Erlangと同じくメモリを共有しないアクターモデル という並行処理の仕組みがある
27.
数学に支えられた構文の美しさ • 小出先生「Lispは神言語」 • ぼくにはまだよくわかりません!
28.
OOP言語の中の関数型
29.
Javascript • クロージャ • 高階関数 •
カリー化 • 普通にJSの本に出てくる。むしろこれらを使わな いとコード書けない。
30.
Ruby • ブロック構文 ← 高階関数が簡単に書ける • lambdaある •
mapとかreduceとか関数型由来のメソッドを多用 するのが当たり前
31.
Java • lambdaが入った
32.
関数型言語を使わなくても恩恵 を受けている
33.
OOP言語を捨てて関数型へ は行かない
34.
もはやOOPは手放せない • 複雑な現実をコードで表現するには、事象を「オブ ジェクト」という抽象化された概念の相互作用とし てモデリングするアプローチは、非常に協力な武器 • 我々は現実と戦わなければならないのです! •
でしょ?OOPの皆さん?
35.
関数型パラダイムを学ぶことでOOP言語でよ り良いコードが書けるようになる、、はず! • OOP言語の中の関数型要素を活用できる! • 参照透過性→副作用が無い→メソッドをシンプルに •
と言いつつ正直まだよくわかりません、皆さんの意 見を教えて下さい。
36.
OOPと関数型両方を生かすス タイルが模索されている • Scalaのアクターモデル • イミュータブルな変数(というか定数)の多用。 •
オブジェクト自体をイミュータブルにするアプロー チもあるぽい。(試してないけど) • 副作用のある操作と無い操作を分離する設計も可能?
37.
まとめ • 関数型の流れがきている(結構前から) • OOP言語にも関数型のパラダイムが入ってきている •
OOPと関数型両方のメリッドを生かすスタイルが 模索されいている • 俺たちOOP戦士の戦いはまだこれからだ!
Download now