Submit Search
Upload
先端技術 関数型プログラミング
•
0 likes
•
815 views
聡 中川
Follow
Report
Share
Report
Share
1 of 24
Download now
Download to read offline
Recommended
私の失敗道(仮)
私の失敗道(仮)
Yuuki Tan-nai
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Shinichi Okada
rChartsによるインタラクティブな可視化表現
rChartsによるインタラクティブな可視化表現
Yasuyuki Sugai
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて
善弘 植木
Jenkins によるレポートスクリプト管理
Jenkins によるレポートスクリプト管理
Tatsuya Tojima
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#
ssusera3d157
Rでダイエット
Rでダイエット
Tatsuya Tojima
Recommended
私の失敗道(仮)
私の失敗道(仮)
Yuuki Tan-nai
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Shinichi Okada
rChartsによるインタラクティブな可視化表現
rChartsによるインタラクティブな可視化表現
Yasuyuki Sugai
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて
善弘 植木
Jenkins によるレポートスクリプト管理
Jenkins によるレポートスクリプト管理
Tatsuya Tojima
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#
ssusera3d157
Rでダイエット
Rでダイエット
Tatsuya Tojima
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
suno88
Use Japanese with vcd/vcdExtra package
Use Japanese with vcd/vcdExtra package
Tsuda University Institute for Mathematics and Computer Science
OpenCAPI meetup 20180702
OpenCAPI meetup 20180702
Yutaka Kawai
2つのmosaic plotと日本語表示
2つのmosaic plotと日本語表示
Tsuda University Institute for Mathematics and Computer Science
ランダムフォレスト回帰
ランダムフォレスト回帰
隆介 小野
Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半
隆介 小野
C言語について
C言語について
Katsuro-u
scikit-learnとTensorFlowによる実践機械学習 第12章
scikit-learnとTensorFlowによる実践機械学習 第12章
隆介 小野
Interrupt jhc
Interrupt jhc
たけおか しょうぞう
先端技術 量子コンピュータ
先端技術 量子コンピュータ
聡 中川
งานคอมใบ 2 8
งานคอมใบ 2 8
'Fixation Tar
Banking Survey & Awards 2013 Think Business Africa
Banking Survey & Awards 2013 Think Business Africa
Watson Macharia
ประว ต ส_วนต_ว (1)
ประว ต ส_วนต_ว (1)
'Fixation Tar
งานคอมจ้า1111111112222946427943497
งานคอมจ้า1111111112222946427943497
Iceeci Flatron
北宜公路記行
北宜公路記行
Chen Micky
AW 学び続ける力 スライド
AW 学び続ける力 スライド
聡 中川
งานคู่ 13 16
งานคู่ 13 16
'Fixation Tar
งานคู่ 2 8
งานคู่ 2 8
'Fixation Tar
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
'Fixation Tar
先端技術 データサイエンティスト
先端技術 データサイエンティスト
聡 中川
Pat2
Pat2
Iceeci Flatron
Logik 1
Logik 1
bsnnsb
More Related Content
What's hot
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
suno88
Use Japanese with vcd/vcdExtra package
Use Japanese with vcd/vcdExtra package
Tsuda University Institute for Mathematics and Computer Science
OpenCAPI meetup 20180702
OpenCAPI meetup 20180702
Yutaka Kawai
2つのmosaic plotと日本語表示
2つのmosaic plotと日本語表示
Tsuda University Institute for Mathematics and Computer Science
ランダムフォレスト回帰
ランダムフォレスト回帰
隆介 小野
Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半
隆介 小野
C言語について
C言語について
Katsuro-u
scikit-learnとTensorFlowによる実践機械学習 第12章
scikit-learnとTensorFlowによる実践機械学習 第12章
隆介 小野
Interrupt jhc
Interrupt jhc
たけおか しょうぞう
What's hot
(9)
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
Use Japanese with vcd/vcdExtra package
Use Japanese with vcd/vcdExtra package
OpenCAPI meetup 20180702
OpenCAPI meetup 20180702
2つのmosaic plotと日本語表示
2つのmosaic plotと日本語表示
ランダムフォレスト回帰
ランダムフォレスト回帰
Python機械学習プログラミング第10章後半
Python機械学習プログラミング第10章後半
C言語について
C言語について
scikit-learnとTensorFlowによる実践機械学習 第12章
scikit-learnとTensorFlowによる実践機械学習 第12章
Interrupt jhc
Interrupt jhc
Viewers also liked
先端技術 量子コンピュータ
先端技術 量子コンピュータ
聡 中川
งานคอมใบ 2 8
งานคอมใบ 2 8
'Fixation Tar
Banking Survey & Awards 2013 Think Business Africa
Banking Survey & Awards 2013 Think Business Africa
Watson Macharia
ประว ต ส_วนต_ว (1)
ประว ต ส_วนต_ว (1)
'Fixation Tar
งานคอมจ้า1111111112222946427943497
งานคอมจ้า1111111112222946427943497
Iceeci Flatron
北宜公路記行
北宜公路記行
Chen Micky
AW 学び続ける力 スライド
AW 学び続ける力 スライド
聡 中川
งานคู่ 13 16
งานคู่ 13 16
'Fixation Tar
งานคู่ 2 8
งานคู่ 2 8
'Fixation Tar
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
'Fixation Tar
先端技術 データサイエンティスト
先端技術 データサイエンティスト
聡 中川
Pat2
Pat2
Iceeci Flatron
Logik 1
Logik 1
bsnnsb
Desfile de modas 2010 enscoop
Desfile de modas 2010 enscoop
AgostinaBerni
великая эпоха читателю
великая эпоха читателю
Надежда Фазылъянова
04 pss concept development
04 pss concept development
Tim McAloone
Gat2
Gat2
Iceeci Flatron
Women Smokers is More Risk from Colon Cancer - Springhill Medical
Women Smokers is More Risk from Colon Cancer - Springhill Medical
aleidadominik
Planing Railway Station Reservation APP
Planing Railway Station Reservation APP
Hossam Nabih
Cervical cancer
Cervical cancer
Rifat Sharmin
Viewers also liked
(20)
先端技術 量子コンピュータ
先端技術 量子コンピュータ
งานคอมใบ 2 8
งานคอมใบ 2 8
Banking Survey & Awards 2013 Think Business Africa
Banking Survey & Awards 2013 Think Business Africa
ประว ต ส_วนต_ว (1)
ประว ต ส_วนต_ว (1)
งานคอมจ้า1111111112222946427943497
งานคอมจ้า1111111112222946427943497
北宜公路記行
北宜公路記行
AW 学び続ける力 スライド
AW 学び続ける力 スライド
งานคู่ 13 16
งานคู่ 13 16
งานคู่ 2 8
งานคู่ 2 8
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
先端技術 データサイエンティスト
先端技術 データサイエンティスト
Pat2
Pat2
Logik 1
Logik 1
Desfile de modas 2010 enscoop
Desfile de modas 2010 enscoop
великая эпоха читателю
великая эпоха читателю
04 pss concept development
04 pss concept development
Gat2
Gat2
Women Smokers is More Risk from Colon Cancer - Springhill Medical
Women Smokers is More Risk from Colon Cancer - Springhill Medical
Planing Railway Station Reservation APP
Planing Railway Station Reservation APP
Cervical cancer
Cervical cancer
Similar to 先端技術 関数型プログラミング
2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)
Shin-ya Koga
Trunk0125資料
Trunk0125資料
颯人 小柳
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"
Ryohei Suzuki
普通のプログラミング言語R
普通のプログラミング言語R
Shuyo Nakatani
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models
n-yuki
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
Fujio Kojima
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
Sadao Tokuyama
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
Ruby Introduction
Ruby Introduction
YushiroDodo
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Ra Zon
Swiftによる関数型プログラミング超入門
Swiftによる関数型プログラミング超入門
Hisakuni Fujimoto
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介
baban ba-n
Sakuteki02 yokkuns
Sakuteki02 yokkuns
Yohei Sato
Apply(r ,self ,emacs)
Apply(r ,self ,emacs)
myuhe
Tokyo r50 beginner_2
Tokyo r50 beginner_2
Takashi Minoda
TypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdf
Ryo Higashigawa
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
Kohei Taniguchi
Rブートキャンプ
Rブートキャンプ
Kosuke Sato
Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流
Kazuhiko Kato
Similar to 先端技術 関数型プログラミング
(20)
2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)
Trunk0125資料
Trunk0125資料
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"
普通のプログラミング言語R
普通のプログラミング言語R
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
SADAO TOKUYAMA の L.E.A.P カンファレンス な 話
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Ruby Introduction
Ruby Introduction
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Swiftによる関数型プログラミング超入門
Swiftによる関数型プログラミング超入門
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介
Sakuteki02 yokkuns
Sakuteki02 yokkuns
Apply(r ,self ,emacs)
Apply(r ,self ,emacs)
Tokyo r50 beginner_2
Tokyo r50 beginner_2
TypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdf
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
Rブートキャンプ
Rブートキャンプ
Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流
More from 聡 中川
Swift入門
Swift入門
聡 中川
Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲーム
聡 中川
先端技術 プレテスト
先端技術 プレテスト
聡 中川
先端技術 No sql
先端技術 No sql
聡 中川
先端技術 Hft
先端技術 Hft
聡 中川
先端技術トピックス 言語ランキング
先端技術トピックス 言語ランキング
聡 中川
先端技術 競技プログラミング
先端技術 競技プログラミング
聡 中川
先端技術 スーパーコンピュータ
先端技術 スーパーコンピュータ
聡 中川
先端技術 セキュリティ最前線
先端技術 セキュリティ最前線
聡 中川
先端技術 気象とコンピュータ
先端技術 気象とコンピュータ
聡 中川
先端技術ガイダンス
先端技術ガイダンス
聡 中川
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
聡 中川
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
聡 中川
iOSアプリ制作のためのObjective-C入門
iOSアプリ制作のためのObjective-C入門
聡 中川
More from 聡 中川
(14)
Swift入門
Swift入門
Swiftアプリ制作入門 かんたんシューティングゲーム
Swiftアプリ制作入門 かんたんシューティングゲーム
先端技術 プレテスト
先端技術 プレテスト
先端技術 No sql
先端技術 No sql
先端技術 Hft
先端技術 Hft
先端技術トピックス 言語ランキング
先端技術トピックス 言語ランキング
先端技術 競技プログラミング
先端技術 競技プログラミング
先端技術 スーパーコンピュータ
先端技術 スーパーコンピュータ
先端技術 セキュリティ最前線
先端技術 セキュリティ最前線
先端技術 気象とコンピュータ
先端技術 気象とコンピュータ
先端技術ガイダンス
先端技術ガイダンス
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
iOSアプリ制作のためのObjective-C入門
iOSアプリ制作のためのObjective-C入門
先端技術 関数型プログラミング
1.
「先端技術」 - 関数型プログラミング - nakasen_20th
2.
関数型プログラミング 1. ひとことで言えば? 2. 生まれた背景 3.
概要 4. 周囲はどう見ているか - 好意的視点 5. 周囲はどう見ているか - 批判的視点 6. 今後はどうなる? 7. 星いくつ?
3.
1. ひとことで言えば? 「関数の定義が数学に近いプログラミング手法」
4.
2. 生まれた(見直された)背景 • 数式に近い記述の高級言語として(1958年) •
近年のプロジェクト炎上多発(→再評価) • JavaScriptの復権
5.
3. 概要説明 • 数学の関数とプログラミング言語の関数 •
関数型プログラミング言語の特徴 • 関数型プログラミング言語の種類 • LISPの誕生→JavaScriptの復権→他言語へ影響 • プログラマにとっての試金石
6.
数学の関数とプログラミング言語の関数 • 数学の関数 ✴ 入力が同じであれば、出力も常に同じ値になるもの •
プログラミング言語の関数 ✴ 関数内部の状態やシステム全体の状態によって 得られる出力が変わってしまう • 「副作用がある」ということ ✴ 変数への代入や入出力によって状態が変化するということ
7.
副作用について • 副作用がある → 状態を持っている • 副作用がない → 状態を持たない → 並列処理をしても同じ値を求められる
8.
宣言的なプログラミング • 非関数型(命令型) var a
= 1; var b = a + 1; a = 10; console.log(b); // -> 2 • 関数型(宣言型) var a = 1; Excelの計算式が書かれたセルが var b = a + 1; 他のセルの変更によって a = 10; 書き換えられるイメージ console.log(b); // -> 11
9.
関数型プログラミング言語の特徴 • 副作用のない処理を書きやすい • 関数がファーストクラスオブジェクト (関数の引数や戻り値に関数を使える) •
静的型付け言語は型推論機能を持つ • クロージャ、遅延評価、カリー化、部分適用等 • バグが減りソースコードがスッキリする
10.
関数型プログラミング言語の特徴 • 正の整数だけの合計値を求める関数(Javaの場合) int sum(int[]
array) { int ret = 0; for (int i : array) { if (i > 0) { ret = ret + i; } } return ret; }
11.
関数型プログラミング言語の特徴 • 正の整数だけの合計値を求める関数(Haskellの場合) sum =
f where f [] = 0 f (it : its) ¦ it > 0 = it + f its ¦ otherwise = f its
12.
関数型プログラミング言語の特徴 • 正の整数だけの合計値を求める関数(Swiftの場合) func sumPositiveInt(array:[Int])
-> Int { return array.filter{ $0 > 0 }.reduce(0, combine:{ $0 + $1 }) }
13.
関数型プログラミング言語の種類 • 純粋関数型言語(副作用を許さない) • 静的型付け •
Haskell • Miranda
14.
関数型プログラミング言語の種類 • 非純粋関数型言語(副作用を許す) • 静的型付け •
ML • OCaml • Scala • 動的型付け • Erlang(後継としてElixirが熱い!) • LISP • Scheme(LISPの方言)
15.
LISPの誕生 • 2番めに古いプログラミング言語(1958年) • S式とカッコの多さ •
実装しやすく多くの方言 • マニア向け言語としての歴史
16.
JavaScriptの復権 • Webブラウザに動的変化を与えるための言語 として華々しくデビュー • ブラウザ側の独自実装乱発で滅亡の危機 •
実は関数がファーストクラスオブジェクト! • Googleエンジニアのハートを射抜く? → Ajaxを利用したプロダクツのヒット
17.
JavaScriptの復権 • JavaScriptは関数型プログラミングの とっかかりに最適(すぐ試せる) • JavaScriptで関数型っぽく書いてみよう http://qiita.com/takeharu/items/ cf98d352ff574c5ac536 •
いい思いをしたプログラマが JavaScriptを滅亡の危機から救った
18.
他言語への影響 • 既存言語でのプロジェクトで炎上頻発! • 関数型いいんじゃね? ソースコードきれい! •
ラムダ式、クロージャーの導入 (Javaもついに) • 型推論、遅延評価等の導入 • 最近はどの言語も関数型の機能を持っている
19.
プログラマにとっての試金石 • 新しいパラダイムを一から勉強し直し? • オブジェクト指向をやっと理解したのに・・・ •
設計は? フレームワークは? 運用は? • 文献は英語ばっかり
20.
プログラマにとっての試金石 • 上からの圧力 ✴ レガシーの面倒見るのはもうコリゴリ ✴
今後新規プロジェクトはPHP禁止、 ScalaはO.K.(某CA社?) ✴ Haskellプロジェクトで良い人材集めよう! • 下からの突き上げ ✴ 若いプログラマが「新技術でやりましょう!」
21.
4.周囲はどう見ているか(好意的視点) • バグが減る! • ソースコードがすっきりする! •
並列処理が書きやすい!
22.
• 学習コスト高過ぎ • 業務処理は無理、マニアのためのもの •
プログラマの単価を上げるためのバズワード 5.周囲はどう見ているか(批判的視点)
23.
6. 今後はどうなる? • オブジェクト指向との親和性アップ •
「はじめての言語が関数型」世代の出現 (関数型ネイティブ) • 大手デベロッパのScalaプロジェクト増加
24.
7. 星いくつ? • トンガリ度 ★☆☆☆☆ •
絶対流行る ★★★★★ • お金の匂い ★★★★☆ • 敷居の低さ ★★★★☆ • 総合おススメ度 ★★★★★
Download now