SlideShare a Scribd company logo
ScalaからGo
不思議なたび
自己紹介:James (エウレカ)
• イギリスのケンブリッジ大学で
コンピューターサイエンスを専
攻
• 鳥取県で中学校で教えながら日
本語を勉強
• 2015年から東京でエンジニ
アとして働いています
• 得意:Scala開発、アーキテク
チャ、CS理論
関数型開発はGoでできますか?
No
(悲しいアリクイ)
関数型開発のコンセプトはGoで
使える?
Yes
(嬉しいアリクイ)
1:考え方レベル
とりあえず、関数型開発って何
?
(関数型開発について考えてるアリクイ)
副作用
func (s *Something) add(a, b int) int {
c := a + b
s.Total = c
return c
}
This is 副作用
I don’t like it
Goでもよくない
• 関数型開発はつまり「副作用がない開発」
• 関数の副作用がテストしにくいし、バグの原因になる
• Goを書いてても、副作用を意識して、処理をする関数を適当に入れ
ないでください
2:コードレベル
部分適用:Scala
def add(a: Int, b: Int): Int = a + b
scala> def addFive = makeAdder(5)
addFive: Int => Int
scala> addFive(12)
res0: Int = 17
scala> def addSeven = makeAdder(7)
addSeven: Int => Int
scala> addSeven(12)
res1: Int = 19
(A)
(B) def makeAdder(a: Int): Int => Int = add(a, _: Int)
部分適用:Go
func add(a, b int) int {
return a + b
}
func makeAdder(a int) func(int) int {
return add(a, _)
}
部分適用:Go
func add(a, b int) int {
return a + b
}
func makeAdder(a int) func(int) int {
return func(b int) int {
return add(a, b)
}
}
じゃ、どっちが好き?
すいませんですが、、、
アリクイにちょっと似ている
なぜ?
• Scalaの長期成長が楽しい
• 副作用がないコードの方が綺麗に感じて、バグ入らない
• でも会社として次世代言語を導入したければ、Goがいい
Thank you!

More Related Content

PPTX
第3回tento.tech定例会
PDF
広島ソフトウェアテスト勉強会1511
PDF
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
PPTX
海外でお仕事することについてどう思われますか?(森内 達也)
PDF
Bracketsについて
PDF
未経験からのエンジニア転職
PDF
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
PPTX
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
第3回tento.tech定例会
広島ソフトウェアテスト勉強会1511
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
海外でお仕事することについてどう思われますか?(森内 達也)
Bracketsについて
未経験からのエンジニア転職
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-

Viewers also liked (20)

PDF
Gopher Fest 2017参加レポート
PDF
golang.tokyo #6 (in Japanese)
PDF
SLOのすすめ
PPTX
AndApp開発における全て #denatechcon
PPTX
MongoDBの可能性の話
PDF
AWS X-Rayによるアプリケーションの分析とデバッグ
PDF
An introduction and future of Ruby coverage library
PDF
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
PDF
Apache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
PDF
Blockchain on Go
PDF
神に近づくx/net/context (Finding God with x/net/context)
PDF
Microservices at Mercari
PDF
Swaggerでのapi開発よもやま話
PDF
Fast and Reliable Swift APIs with gRPC
PDF
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
PPTX
Solving anything in VCL
PDF
So You Wanna Go Fast?
PDF
Google Home and Google Assistant Workshop: Build your own serverless Action o...
PDF
Spark Streaming Programming Techniques You Should Know with Gerard Maas
PPTX
リクルートを支える横断データ基盤と機械学習の適用事例
Gopher Fest 2017参加レポート
golang.tokyo #6 (in Japanese)
SLOのすすめ
AndApp開発における全て #denatechcon
MongoDBの可能性の話
AWS X-Rayによるアプリケーションの分析とデバッグ
An introduction and future of Ruby coverage library
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
Apache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
Blockchain on Go
神に近づくx/net/context (Finding God with x/net/context)
Microservices at Mercari
Swaggerでのapi開発よもやま話
Fast and Reliable Swift APIs with gRPC
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Solving anything in VCL
So You Wanna Go Fast?
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Spark Streaming Programming Techniques You Should Know with Gerard Maas
リクルートを支える横断データ基盤と機械学習の適用事例
Ad

Similar to ScalaからGoへ (20)

PDF
関数プログラミング入門
PDF
Swiftによる関数型プログラミング超入門
PDF
TypeScript & 関数型講座 第3回 関数型入門
PDF
先端技術 関数型プログラミング
PDF
関数プログラミング入門
PDF
Scalaで学ぶ関数型超入門
PPTX
Go guide for Java programmer
PDF
TechDo Goハンズオン#3
PDF
Functional Programming in Swift
PDF
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
PDF
磯野ー!関数型言語やろうぜー!
PDF
Scalaで萌える関数型プログラミング[完全版]
PDF
関数型都市忘年会『はじめての函数型プログラミング』
PDF
モナドハンズオン前座
KEY
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
PDF
JavaScript経験者のためのGo言語入門
PDF
今日から始めるGopher - スタートGo #0 @GDG名古屋
PDF
Javaプログラマのための頑張らないGo入門
PDF
Scalaプログラミング・マニアックス
PDF
Scalaで萌える関数型プログラミング[1.1.RC1]
関数プログラミング入門
Swiftによる関数型プログラミング超入門
TypeScript & 関数型講座 第3回 関数型入門
先端技術 関数型プログラミング
関数プログラミング入門
Scalaで学ぶ関数型超入門
Go guide for Java programmer
TechDo Goハンズオン#3
Functional Programming in Swift
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
磯野ー!関数型言語やろうぜー!
Scalaで萌える関数型プログラミング[完全版]
関数型都市忘年会『はじめての函数型プログラミング』
モナドハンズオン前座
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
JavaScript経験者のためのGo言語入門
今日から始めるGopher - スタートGo #0 @GDG名古屋
Javaプログラマのための頑張らないGo入門
Scalaプログラミング・マニアックス
Scalaで萌える関数型プログラミング[1.1.RC1]
Ad

ScalaからGoへ