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
Kota Mizushima
7,576 views
こわくない型クラス
Technology
◦
Entertainment & Humor
◦
Read more
32
Save
Share
Embed
Embed presentation
Download
Downloaded 26 times
1
/ 35
2
/ 35
3
/ 35
4
/ 35
5
/ 35
6
/ 35
7
/ 35
8
/ 35
9
/ 35
10
/ 35
11
/ 35
12
/ 35
13
/ 35
14
/ 35
15
/ 35
16
/ 35
17
/ 35
18
/ 35
19
/ 35
20
/ 35
21
/ 35
22
/ 35
23
/ 35
24
/ 35
25
/ 35
26
/ 35
27
/ 35
28
/ 35
29
/ 35
30
/ 35
31
/ 35
32
/ 35
33
/ 35
34
/ 35
35
/ 35
More Related Content
PPT
Pythonintro
by
Mikio Kubo
PDF
MP in Haskell
by
Kent Ohashi
PDF
MP in Scala
by
Kent Ohashi
PDF
Implicit Explicit Scala
by
Kota Mizushima
PDF
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
by
Nozomu Kaneko
PPTX
関数の近似方法(MATLAB)
by
Tsuyoshi Horigome
PDF
Implicit Implicit Scala
by
Kota Mizushima
PPTX
Yokohama6 epi
by
えぴ 福田
Pythonintro
by
Mikio Kubo
MP in Haskell
by
Kent Ohashi
MP in Scala
by
Kent Ohashi
Implicit Explicit Scala
by
Kota Mizushima
すごいHaskell 第7章 型や型クラスを自分で作ろう(前編)
by
Nozomu Kaneko
関数の近似方法(MATLAB)
by
Tsuyoshi Horigome
Implicit Implicit Scala
by
Kota Mizushima
Yokohama6 epi
by
えぴ 福田
What's hot
PPTX
配列
by
rippro
KEY
by
a-hisame
PDF
すごいHaskell楽しく学ぼう 第6章
by
aomori ringo
PDF
速習Collections
by
irof N
PDF
Introduction to Categorical Programming
by
Masahiro Sakai
PPTX
すうがく初めの一歩
by
Lina Katayose
PDF
C言語講習会3
by
odenhadengaku
PDF
型クラス
by
hakukotsu
PDF
Introduction to Categorical Programming (Revised)
by
Masahiro Sakai
PPTX
F#のすすめ
by
Hiromu Sasaki
PDF
Python勉強会2-数値と文字列
by
理 小林
PDF
Rの初歩: 6. グラフィックス
by
Teiko Suzuki
PDF
Extensible Eff Applicative
by
Sanshiro Yoshida
PDF
みんなで Swift 復習会 GO! in 沖縄・発表資料
by
Tomohiro Kumagai
PDF
これがわかるとshapelessのコードも読めるかもしれない
by
Yasuki Okumura
PDF
やさしく知りたいC言語
by
uru nru
PPTX
CG2013 05
by
shiozawa_h
PPTX
関数型プログラミングとモナド
by
Masayuki Isobe
PDF
データ圧縮
by
Joe Suzuki
PPTX
120419サブゼミ意思決定(2) 1
by
takemuralab
配列
by
rippro
by
a-hisame
すごいHaskell楽しく学ぼう 第6章
by
aomori ringo
速習Collections
by
irof N
Introduction to Categorical Programming
by
Masahiro Sakai
すうがく初めの一歩
by
Lina Katayose
C言語講習会3
by
odenhadengaku
型クラス
by
hakukotsu
Introduction to Categorical Programming (Revised)
by
Masahiro Sakai
F#のすすめ
by
Hiromu Sasaki
Python勉強会2-数値と文字列
by
理 小林
Rの初歩: 6. グラフィックス
by
Teiko Suzuki
Extensible Eff Applicative
by
Sanshiro Yoshida
みんなで Swift 復習会 GO! in 沖縄・発表資料
by
Tomohiro Kumagai
これがわかるとshapelessのコードも読めるかもしれない
by
Yasuki Okumura
やさしく知りたいC言語
by
uru nru
CG2013 05
by
shiozawa_h
関数型プログラミングとモナド
by
Masayuki Isobe
データ圧縮
by
Joe Suzuki
120419サブゼミ意思決定(2) 1
by
takemuralab
Viewers also liked
PDF
Scalaで型クラス入門
by
Makoto Fukuhara
PDF
Scalaのオブジェクトの話
by
Yasuyuki Maeda
PDF
Pythonのすすめ
by
Masashi Shibata
PDF
Swiftで、かなり微妙な型クラス
by
Nobukazu Hanada
PDF
Scalaでのプログラム開発
by
Kota Mizushima
PPTX
Javaから始めるscalaっぽい書き方
by
Kenji Doi
PDF
第三回ありえる社内勉強会 「いわががのLombok」
by
yoshiaki iwanaga
ODP
Scala lens: An introduction
by
Knoldus Inc.
PDF
Scalaで実装するGC
by
NISHIMOTO Keisuke
PDF
15分でざっくり分かるScala入門
by
SatoYu1ro
PDF
Python3でwebアプリ
by
Atsushi Odagiri
PDF
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
PDF
Python入門 : 4日間コース社内トレーニング
by
Yuichi Ito
Scalaで型クラス入門
by
Makoto Fukuhara
Scalaのオブジェクトの話
by
Yasuyuki Maeda
Pythonのすすめ
by
Masashi Shibata
Swiftで、かなり微妙な型クラス
by
Nobukazu Hanada
Scalaでのプログラム開発
by
Kota Mizushima
Javaから始めるscalaっぽい書き方
by
Kenji Doi
第三回ありえる社内勉強会 「いわががのLombok」
by
yoshiaki iwanaga
Scala lens: An introduction
by
Knoldus Inc.
Scalaで実装するGC
by
NISHIMOTO Keisuke
15分でざっくり分かるScala入門
by
SatoYu1ro
Python3でwebアプリ
by
Atsushi Odagiri
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
Python入門 : 4日間コース社内トレーニング
by
Yuichi Ito
Similar to こわくない型クラス
PDF
What Dotty fixes @ Scala関西サミット
by
Taisuke Oe
PDF
Phantom Type in Scala
by
Yasuyuki Maeda
PDF
Scala の関数型プログラミングを支える技術
by
Naoki Aoyama
PDF
プログラミング言語Scala
by
TanUkkii
PDF
すごいH 第12章モノイド
by
Shinta Hatatani
KEY
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
by
Hiromi Ishii
PDF
すごいHaskell楽しく学ぼう-第12章モノイド-
by
Hiromasa Ohashi
PDF
Scalaz
by
Kota Mizushima
PDF
オブジェクト指向開発におけるObject-Functional Programming
by
Tomoharu ASAMI
PDF
すごいHaskell読書会
by
Kosuke Usami
ODP
これから Haskell を書くにあたって
by
Tsuyoshi Matsudate
PDF
Scalaプログラミング・マニアックス
by
Tomoharu ASAMI
PDF
Haskell Lecture 2
by
Yusuke Matsushita
PDF
Haskell勉強会2 in ie
by
maeken2010
PDF
Haskell超初心者勉強会14
by
Takashi Kawachi
PDF
静的型付け言語Python
by
kiki utagawa
PDF
モナドハンズオン前座
by
bleis tift
PPTX
Xtend の紹介
by
Oda Shinsuke
PDF
Python standard 2022 Spring
by
anyakichi
KEY
モナドがいっぱい!
by
Kenta Sato
What Dotty fixes @ Scala関西サミット
by
Taisuke Oe
Phantom Type in Scala
by
Yasuyuki Maeda
Scala の関数型プログラミングを支える技術
by
Naoki Aoyama
プログラミング言語Scala
by
TanUkkii
すごいH 第12章モノイド
by
Shinta Hatatani
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
by
Hiromi Ishii
すごいHaskell楽しく学ぼう-第12章モノイド-
by
Hiromasa Ohashi
Scalaz
by
Kota Mizushima
オブジェクト指向開発におけるObject-Functional Programming
by
Tomoharu ASAMI
すごいHaskell読書会
by
Kosuke Usami
これから Haskell を書くにあたって
by
Tsuyoshi Matsudate
Scalaプログラミング・マニアックス
by
Tomoharu ASAMI
Haskell Lecture 2
by
Yusuke Matsushita
Haskell勉強会2 in ie
by
maeken2010
Haskell超初心者勉強会14
by
Takashi Kawachi
静的型付け言語Python
by
kiki utagawa
モナドハンズオン前座
by
bleis tift
Xtend の紹介
by
Oda Shinsuke
Python standard 2022 Spring
by
anyakichi
モナドがいっぱい!
by
Kenta Sato
More from Kota Mizushima
PDF
ドワンゴにおける新卒エンジニア向けScala研修について
by
Kota Mizushima
PDF
kollectionの紹介
by
Kota Mizushima
PDF
株式会社ドワンゴにおけるScala教育の現状
by
Kota Mizushima
PDF
Macros in nemerle
by
Kota Mizushima
PDF
Scala Daysに行ってみて - あるいはスイス旅行記 -
by
Kota Mizushima
PDF
Introduction to PEG
by
Kota Mizushima
PDF
Scalaの現状と今後
by
Kota Mizushima
PPT
Power of Scala
by
Kota Mizushima
PDF
Scala Performance Tuning Tips
by
Kota Mizushima
PDF
こわくないScala
by
Kota Mizushima
PDF
Scala is-unscared
by
Kota Mizushima
PDF
About Capabilities for Uniqueness and Borrowing
by
Kota Mizushima
PDF
Scala Macros makes it easy to provide useful libraries
by
Kota Mizushima
PDF
Scala + Finagleの魅力
by
Kota Mizushima
PDF
Scalaの現状と課題
by
Kota Mizushima
PDF
日本Scalaユーザーズグループ発足
by
Kota Mizushima
PDF
言語アップデート -Scala編-
by
Kota Mizushima
PPTX
ScalaのソースをEclipseでビルドしてみた
by
Kota Mizushima
PDF
Scalaの限定継続の応用と基本(改訂版)
by
Kota Mizushima
PDF
Scalaの限定継続の応用と基本
by
Kota Mizushima
ドワンゴにおける新卒エンジニア向けScala研修について
by
Kota Mizushima
kollectionの紹介
by
Kota Mizushima
株式会社ドワンゴにおけるScala教育の現状
by
Kota Mizushima
Macros in nemerle
by
Kota Mizushima
Scala Daysに行ってみて - あるいはスイス旅行記 -
by
Kota Mizushima
Introduction to PEG
by
Kota Mizushima
Scalaの現状と今後
by
Kota Mizushima
Power of Scala
by
Kota Mizushima
Scala Performance Tuning Tips
by
Kota Mizushima
こわくないScala
by
Kota Mizushima
Scala is-unscared
by
Kota Mizushima
About Capabilities for Uniqueness and Borrowing
by
Kota Mizushima
Scala Macros makes it easy to provide useful libraries
by
Kota Mizushima
Scala + Finagleの魅力
by
Kota Mizushima
Scalaの現状と課題
by
Kota Mizushima
日本Scalaユーザーズグループ発足
by
Kota Mizushima
言語アップデート -Scala編-
by
Kota Mizushima
ScalaのソースをEclipseでビルドしてみた
by
Kota Mizushima
Scalaの限定継続の応用と基本(改訂版)
by
Kota Mizushima
Scalaの限定継続の応用と基本
by
Kota Mizushima
こわくない型クラス
1.
こわくない型クラス @kmizu Scala
Conference in Japan 2013 座長 Scalaエヴァンジェリスト(に戻った?)
2.
こわくない話
3.
型クラスは怖くない 型クラスは友達
4.
本当に?
5.
本当です(真顔)
6.
簡単な例題
7.
リストの要素を全て足し合わせた値を返 す関数
8.
素直な解
9.
def sum(list: List[Int]):
Int = list.foldLeft(0)(_ + _)
10.
これでOK?
11.
Intにしか適用できない
12.
加算できる型ならなんでもsumしたい (Int,Long,Float,Doubleとか)
13.
trait Monoid[A] {
def plus(x: A, y: A): A def zero: A } def sum[A](list: List[A])(m: Monoid[A]): A = { list.foldLeft(m.zero) { case (total, e) => m.plus(total, e) } }
14.
ここまでが準備
15.
object IntMonoid extends
Monoid[Int] { def plus(x: Int, y: Int): Int = x + y def zero: Int = 0 } sum(List(1, 2, 3, 4))(IntMonoid)
16.
object DoubleMonoid extends
Monoid[Double] { def plus(x: Double, y: Double): Double= x + y def zero: Double = 0.0 } sum(List(1.0, 2.0, 3.0, 4.0))(DoubleMonoid)
17.
やった!
18.
毎回 XXXMonoid渡すの?
19.
めんどくさい
20.
その気持ちをわかって欲しい
21.
気持ちを伝える方法
22.
trait Monoid[A] {
def plus(x: A, y: A): A def zero: A } def sum[A](list: List[A])( implicit m: Monoid[A]): A = { list.foldLeft(m.zero) { case (total, e) => m.plus(total, e) } }
23.
implicit object DoubleMonoid
extends Monoid[Double] { def plus(x: Double, y: Double): Double= x + y def zero: Double = 0.0 } implicit object IntMonoid extends Monoid[Int] { def plus(x: Int, y: Int): Int = x + y def zero: Double = 0
24.
sum(List(1, 2, 3,
4, 5)) // ⇒ 15 sum(List(1.0, 2.0, 3.0. 4.0, 5.0)) // ⇒ 15.0
25.
他の型のListもsumしたくなったら?
26.
implicit object BooleanMonoid
extends Monoid[Boolean] { def plus(x: Boolean, y: Boolean): Boolean = x | y def zero: Boolean = false } List(true, false, true) // ⇒ true List(false, false, false) // ⇒ true
27.
話を戻します
28.
めんどくさい def
sum[A](list: List[A])( implicit m: Monoid[A]): A = { list.foldLeft(m.zero) { case (total, e) => m.plus(total, e) } }
29.
def sum[A:Monoid](list: List[A]):
A = { list.foldLeft(m.zero) { case (total, e) => m.plus(total, e) } }
30.
型クラスという言葉 出てきましたか?
31.
Monoid[A] みたいなのをScalaで 型クラスと呼んでいるだけ
厳密には説明の順番が逆だけどそこは気にしない
32.
Haskellの型クラスも 原理は同じ
33.
Scalaでは 少し中身が見えている
34.
むしろわかりやすい
35.
詳しく知りたい人向けの参考文献
Martin Odersky, Poor Man's Type Classes, 2006 http://lampwww.epfl.ch/~odersky/talks/wg2.8boston06.pdf
Download