Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Naoyuki Yamada
1,974 views
Functional Programming in Scala Reading #2
Technology
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 19
2
/ 19
3
/ 19
4
/ 19
5
/ 19
6
/ 19
7
/ 19
8
/ 19
9
/ 19
10
/ 19
11
/ 19
12
/ 19
13
/ 19
14
/ 19
15
/ 19
16
/ 19
17
/ 19
18
/ 19
19
/ 19
More Related Content
PDF
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
by
Naoyuki Yamada
PDF
AWSによるサーバーレスアーキテクチャ
by
真吾 吉田
PDF
AWSからOpenStack, Chef SoloからChef Serverに インフラを置き換えた事例の紹介
by
Naoyuki Yamada
PDF
データポータルソフトウェア CKAN
by
Fumihiro Kato
PDF
Spray intro
by
Suguru Hamazaki
PPTX
Visual Studio 2019 Updates Pickup!
by
Hiroyuki Mori
PDF
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
by
真吾 吉田
PDF
JAWS-2013-LT 10000req/secを50msecで返すサーバーインフラをAWSで作る
by
Naoyuki Yamada
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
by
Naoyuki Yamada
AWSによるサーバーレスアーキテクチャ
by
真吾 吉田
AWSからOpenStack, Chef SoloからChef Serverに インフラを置き換えた事例の紹介
by
Naoyuki Yamada
データポータルソフトウェア CKAN
by
Fumihiro Kato
Spray intro
by
Suguru Hamazaki
Visual Studio 2019 Updates Pickup!
by
Hiroyuki Mori
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
by
真吾 吉田
JAWS-2013-LT 10000req/secを50msecで返すサーバーインフラをAWSで作る
by
Naoyuki Yamada
What's hot
PDF
新規事業「Bill One」による Google Cloud 活用術
by
Mao Ohnishi
PDF
CKAN日本語コミュニティの現状と課題
by
Fumihiro Kato
PDF
ここが良かったDatadog
by
tyamane
PDF
これからのインフラエンジニアについて考えていること
by
gree_tech
PDF
SIerでScalaを使うために私がしたこと
by
takezoe
PDF
What is Serverless?
by
Terui Masashi
PDF
Scala界隈の近況
by
takezoe
PDF
Azure Functionsから始めるServerless
by
ryosuke matsumura
PDF
CloudGarageのベンチマークテスト
by
Kazunori Inaba
PPTX
Max compute alieaters analyst
by
Bui Ha
PDF
20210129 azure webapplogging
by
Takayoshi Tanaka
PPTX
IoT/GPSトラッキング プラットフォームがサーバレス だからこそ2ヶ月で構築できた話
by
Yuki Takahashi
PDF
Infra as Code in Azure
by
Issei Hiraoka
PPTX
祝 top-level project Apache Geode
by
Tomohiro Ichimura
PDF
サーバーレス・アーキテクチャ概要
by
真吾 吉田
PDF
Serverless for VUI
by
真吾 吉田
PDF
VUXデザイナー
by
真吾 吉田
PDF
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
by
de:code 2017
PDF
サーバーレスの話
by
真吾 吉田
PDF
Storylineでデザインする心地よい会話体験
by
真吾 吉田
新規事業「Bill One」による Google Cloud 活用術
by
Mao Ohnishi
CKAN日本語コミュニティの現状と課題
by
Fumihiro Kato
ここが良かったDatadog
by
tyamane
これからのインフラエンジニアについて考えていること
by
gree_tech
SIerでScalaを使うために私がしたこと
by
takezoe
What is Serverless?
by
Terui Masashi
Scala界隈の近況
by
takezoe
Azure Functionsから始めるServerless
by
ryosuke matsumura
CloudGarageのベンチマークテスト
by
Kazunori Inaba
Max compute alieaters analyst
by
Bui Ha
20210129 azure webapplogging
by
Takayoshi Tanaka
IoT/GPSトラッキング プラットフォームがサーバレス だからこそ2ヶ月で構築できた話
by
Yuki Takahashi
Infra as Code in Azure
by
Issei Hiraoka
祝 top-level project Apache Geode
by
Tomohiro Ichimura
サーバーレス・アーキテクチャ概要
by
真吾 吉田
Serverless for VUI
by
真吾 吉田
VUXデザイナー
by
真吾 吉田
[DO06] Infrastructure as Code でサービスを迅速にローンチし、継続的にインフラを変更しよう
by
de:code 2017
サーバーレスの話
by
真吾 吉田
Storylineでデザインする心地よい会話体験
by
真吾 吉田
Viewers also liked
PDF
Software engineering 101 - The basics you should hear about at least once
by
Alexey (Mr_Mig) Migutsky
PDF
Programming in Scala: Notes
by
Roberto Casadei
PPT
Scala presentation by Aleksandar Prokopec
by
Loïc Descotte
PDF
Scala: Object-Oriented Meets Functional, by Iulian Dragos
by
3Pillar Global
KEY
Basic Wicket and Scala
by
stuq
PDF
Scala vs Ruby
by
Rémy-Christophe Schermesser
PDF
Programming Actor-based Collective Adaptive Systems
by
Roberto Casadei
PDF
Software Engineering Thailand: Programming with Scala
by
Brian Topping
PPTX
Scala 2.10.0 (english version)
by
Daniel Sobral
PDF
Functional Programming in Scala: Notes
by
Roberto Casadei
PPTX
Scala Intro
by
Alexey (Mr_Mig) Migutsky
PDF
Empathic Programming - How to write comprehensible code
by
Mario Gleichmann
PDF
Clean Code - How to write comprehensible code regarding cognitive abilities o...
by
Mario Gleichmann
PDF
Scala in practice
by
andyrobinson8
KEY
Scala For Java Programmers
by
Enno Runne
PDF
The hitchhicker’s guide to unit testing
by
Rémy-Christophe Schermesser
PDF
Functional Scala I
by
Mario Gleichmann
PDF
Fp in scala part 1
by
Hang Zhao
PDF
Fp in scala with adts part 2
by
Hang Zhao
PDF
Functional Scala II (in practice)
by
Mario Gleichmann
Software engineering 101 - The basics you should hear about at least once
by
Alexey (Mr_Mig) Migutsky
Programming in Scala: Notes
by
Roberto Casadei
Scala presentation by Aleksandar Prokopec
by
Loïc Descotte
Scala: Object-Oriented Meets Functional, by Iulian Dragos
by
3Pillar Global
Basic Wicket and Scala
by
stuq
Scala vs Ruby
by
Rémy-Christophe Schermesser
Programming Actor-based Collective Adaptive Systems
by
Roberto Casadei
Software Engineering Thailand: Programming with Scala
by
Brian Topping
Scala 2.10.0 (english version)
by
Daniel Sobral
Functional Programming in Scala: Notes
by
Roberto Casadei
Scala Intro
by
Alexey (Mr_Mig) Migutsky
Empathic Programming - How to write comprehensible code
by
Mario Gleichmann
Clean Code - How to write comprehensible code regarding cognitive abilities o...
by
Mario Gleichmann
Scala in practice
by
andyrobinson8
Scala For Java Programmers
by
Enno Runne
The hitchhicker’s guide to unit testing
by
Rémy-Christophe Schermesser
Functional Scala I
by
Mario Gleichmann
Fp in scala part 1
by
Hang Zhao
Fp in scala with adts part 2
by
Hang Zhao
Functional Scala II (in practice)
by
Mario Gleichmann
Similar to Functional Programming in Scala Reading #2
PDF
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
by
Tomoharu ASAMI
PDF
FP習熟度レベルとFSharpxのIteratee
by
pocketberserker
PDF
実務者のためのかんたんScalaz
by
Tomoharu ASAMI
PPTX
Functional Programming in Scala #4-1
by
Yoshihiro Shimizu
PDF
Scala conf2013
by
Takafumi Ikeda
PDF
Fujitask meets Extensible Effects
by
Hikaru Yoshimura
PDF
Scala is-unscared
by
Kota Mizushima
PDF
こわくないScala
by
Kota Mizushima
PPTX
関数型言語&形式的手法セミナー(3)
by
啓 小笠原
KEY
Clojure programming-chapter-2
by
Masao Kato
PDF
15分でざっくり分かるScala入門
by
SatoYu1ro
PDF
Essential Scala 第2章 式、型、値
by
Takuya Tsuchida
PDF
Let's Simulate a Quantum Computer with Pretty Scala
by
Takatomo Torigoe
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
by
Tomoharu ASAMI
FP習熟度レベルとFSharpxのIteratee
by
pocketberserker
実務者のためのかんたんScalaz
by
Tomoharu ASAMI
Functional Programming in Scala #4-1
by
Yoshihiro Shimizu
Scala conf2013
by
Takafumi Ikeda
Fujitask meets Extensible Effects
by
Hikaru Yoshimura
Scala is-unscared
by
Kota Mizushima
こわくないScala
by
Kota Mizushima
関数型言語&形式的手法セミナー(3)
by
啓 小笠原
Clojure programming-chapter-2
by
Masao Kato
15分でざっくり分かるScala入門
by
SatoYu1ro
Essential Scala 第2章 式、型、値
by
Takuya Tsuchida
Let's Simulate a Quantum Computer with Pretty Scala
by
Takatomo Torigoe
More from Naoyuki Yamada
PDF
株式会社サイバーエージェント アドテクスタジオの技術と開発
by
Naoyuki Yamada
PDF
ADTECH COLLEGE #2 近い将来、開発責任者になるあなたへ
by
Naoyuki Yamada
PDF
Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
by
Naoyuki Yamada
PDF
ElasticSearch勉強会 第6回
by
Naoyuki Yamada
PDF
KubernetesでRedisを使うときの選択肢
by
Naoyuki Yamada
PDF
Adtech College#7 GitHubを中心とした開発フロー
by
Naoyuki Yamada
PDF
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
by
Naoyuki Yamada
PDF
いわき情報技術研究会20170513
by
Naoyuki Yamada
PDF
データマイニング+WEB勉強会資料第6回
by
Naoyuki Yamada
PDF
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
by
Naoyuki Yamada
PDF
CAジャーナルクラブ TAO: Facebook’s Distributed Data Store for the Social Graph
by
Naoyuki Yamada
PDF
東北Tech道場郡山20151031
by
Naoyuki Yamada
PDF
社内勉強会:ソーシャルゲームのデータベース設計入門
by
Naoyuki Yamada
PDF
ソーシャルアプリ業界を構成する中間サービスたち
by
Naoyuki Yamada
PDF
Social Web Japan Vol.3 "Social Application and their support services"
by
Naoyuki Yamada
株式会社サイバーエージェント アドテクスタジオの技術と開発
by
Naoyuki Yamada
ADTECH COLLEGE #2 近い将来、開発責任者になるあなたへ
by
Naoyuki Yamada
Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
by
Naoyuki Yamada
ElasticSearch勉強会 第6回
by
Naoyuki Yamada
KubernetesでRedisを使うときの選択肢
by
Naoyuki Yamada
Adtech College#7 GitHubを中心とした開発フロー
by
Naoyuki Yamada
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
by
Naoyuki Yamada
いわき情報技術研究会20170513
by
Naoyuki Yamada
データマイニング+WEB勉強会資料第6回
by
Naoyuki Yamada
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
by
Naoyuki Yamada
CAジャーナルクラブ TAO: Facebook’s Distributed Data Store for the Social Graph
by
Naoyuki Yamada
東北Tech道場郡山20151031
by
Naoyuki Yamada
社内勉強会:ソーシャルゲームのデータベース設計入門
by
Naoyuki Yamada
ソーシャルアプリ業界を構成する中間サービスたち
by
Naoyuki Yamada
Social Web Japan Vol.3 "Social Application and their support services"
by
Naoyuki Yamada
Functional Programming in Scala Reading #2
1.
Functional Programming in Scala
Reading #2 Sep 19 2013 NaoyukiYamada Software Engineer@AMoAd https://github.com/chokkoyamada
2.
• Functional Programming
in Scala (by Paul Chiusano and Rúnar Bjarnason) の読書会 http://www.manning.com/bjarnason/ • 毎週木曜日17:00~18:00@渋谷マークシティ • AMoAdの社内勉強会 • 今回は第2回。第1回の資料はこちら https://speakerdeck.com/potix2/fpscala-chapter1 これは何?
3.
開発環境構築(1/2) • 書籍用のレポジトリをcloneしてくる https://github.com/pchiusano/fpinscala • IntelliJ
Idea + scala plugin + sbt plugin + sbt-idea(https://github.com/mpeltonen/sbt-idea) • chmod a+x ./sbt //実行権限付与 • ./sbt //初回にsbtがセットアップされる
4.
開発環境構築(2/2) • sbt-ideaプラグインをプロジェクトに追加 #project/plugins.sbtに下記を記述 • ./sbt
gen-idea //IntelliJ用のファイルを生成 • IntelliJ Ideaでプロジェクトを開く • 任意のコードのデモはIntelliJの中の Scala Worksheetを使います addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.1")
5.
Chapter2 Getting Started
6.
2.1 Introduction • Scalaと関数型プログラミングの導入 •
Scalaの実際のコードをみていく • 高階関数(higher-order functions: 関数を引 数や戻り値にする関数)の紹介 Chapter 2の概要
7.
2.2 An Example
Scala Program • MyModuleというサンプルコードの説明 • Scalaの特徴(一部) objectはシングルトンオブジェクトでclassとは 別。その代わりJavaと違ってstaticはない 戻り値の型は省略可能 unit型≒void valで宣言した変数はimmutable
8.
2.3 Running Our
Program • scalac hoge.scalaでコンパイルしてscala hogeで実行 • scala hoge.scalaで直接実行もできる • REPLで:loadで読み込んで実行するやり 方もある
9.
2.4 Modules, objects
and namespaces • モジュールやネームスペースはJavaとほ とんど同じ • 違うところ Primitive型はなく、全てがオブジェクト “+” “%”などはoperatorではなくmethod
10.
2.5 Function objects:
passing functions to functions • 再帰(recursion)について • tail call optimization(末尾呼び出しの最適化) →必要なら@annotation.tailrec • 高階関数の簡単な例:formatResult()
11.
Exercise 1 • n個目のフィボナッチ数を求める関数を 書け。最初の2つの数は0と1。ローカル 関数の末尾再帰を使うこと。 def
fib(n: Int): Int
12.
2.6 Polymorphic functions: abstracting
over types • Polymorphic function(ポリモーフィック/ 多相型関数, 別名generic function)は1つだ けでなく多くの型に対して使える関数 • 型パラメータの機能を使う →Javaのジェネリックに相当(少し違う)
13.
2.7 Anonymous functions •
Anonymous function(無名関数)について →a.k.a. lambda • ‘(引数) => 関数の中身’ という形式で記述
14.
Exercise 2 • isSorted関数を実装しなさい。次のよう な比較関数を使ってArray[A]がソートさ れているかどうかチェックすること。 def
isSorted[A](as: Array[A], gt: (A, A) => Boolean): Boolean
15.
2.8 Following types
to implementations • 部分適用(partial application) 複数の引数を取る関数の一部だけに実 引数を適用する操作のこと(Wikipedia) def partial1[A,B,C](a: A, f: (A,B) => C): B => C = (b: B) => f(a, b) →この場合 aというA型の引数が与えられるとB型 を引数にとってC型を返す関数が一意に定義できる
16.
Exercise 3 • 2つの引数を持つ関数fを、1つの引数を とってfに部分的に適用する変換を行う カリー化をしなさい。 def
curry[A, B, C](f: (A, B) => C): A => (B => C)
17.
Exercise 4 • uncurry化をしなさい。 def
uncurry[A, B, C](f: A => B => C): (A, B) => C
18.
Exercise 5 • 次の2つの関数を組み立てる高階関数を 定義しなさい。 def
compose[A, B, C](f: B => C, g: A => B): A => C
19.
2.9 Conclusion • 関数型プログラミングの基本をさらった •
再帰、高階関数、ポリモーフィック関数 • 正確な実装は型に従って導かれる → “follow the types to the collect implementation”の訳 • これらの原則は大規模なプログラミングでも同じ
Download