Contenu connexe
Similaire à Scala is-unscared
Similaire à Scala is-unscared (20)
Plus de Kota Mizushima (20)
Scala is-unscared
- 2. 自己紹介
• 水島 宏太
– Twi3er:
@kmizu
– Github:
h3ps://github.com/kmizu/
• Scala
Days皆勤賞(2010,
2011,
2012)
-‐>
どうでもいい
• 好きなもの
• (プログラミング|形式)言語
• 静的な型システム
• メタプログラミング
• Scala
- 3. Scalaは怖い?
• よくわからないけど怖そうな機能
– Implicit
conversion(暗黙の型変換)
– Implicit
parameter
(型クラス)
• 関数型言語とのハイブリッド
• Scalaz
• Scalaの人たちが怖い
Scala怖い!
- 5. Scalaへの誤解
• 関数型の概念を理解する必要がある
• implicitなんとかを使いこなす必要がある
• 関数型なコードを書かないと叩かれる
• Scalazという謎のライブラリを普通に使う
- 6. 誤解(1)
関数型の概念を理解す
る必要がある
• もちろん理解した方がいい
• 最初から全て理解する必要はない
– 「タイプ数が少ないJava」になる事を恐れない
• 少しずつ考え方を変えよう
–
第一級の関数の活用
–
ループから再帰、再帰から高階関数へ
–
Scalaの関数型プログラミングのサポートは
Javaプログラマには理解しやすい
- 7. 誤解1についての補足
(第一級の関数を例として)
• 第一級の関数 =
無名クラスのインスタンス
val
f
=
(n:
Int)
=>
n
+
1
f(3)
//
4
val
f:
FuncQon1[Int,
Int]
=
new
FuncQon1[Int,
Int]
{
def
apply(n:
Int):
Int
=
n
+
1
}
f.apply(3)
//
4
- 8. 誤解1についての補足2
•
val
f:
FuncQon1[Int,
Int]
=
new
FuncQon1[Int,
Int]
{
def
apply(n:
Int):
Int
=
n
+
1
}
f.apply(3)
//
4
FuncQon1<Integer,
Integer>
f
=
new
FuncQon1<Integer,
Integer>()
{
Integer
apply(Integer
n)
{
return
n
+
1;
}
}
f.apply(3);
//4
- 10. 誤解2
implicitなんとかを使いこ
なす必要がある
• スクラッチから書くときには必要ない
– もちろん、使いこなせると便利
• Scalaのコードを読む時は知っていると良い
– 読むときになってから勉強すればいい
– 最初から全てを知ろうとしない
- 11. 誤解3
関数型なコードを書かな
いと叩かれる
• 一部にそういう人は居ます
• 多くの人は普通に教えてくれます
– 「教えたがり」な人は意外に多い
• 言葉遣いが端的な人は(普通)怒っていません
– どうか怯えないで
- 12. 誤解4
Scalazという
難しいライブラリを普通に使う
• そんなことはありません(キリッ
• コアなライブラリ作者が使っていたりする
– 使いこなせると便利なので
• 普通のScalaプログラマには必要ありません
– ここ重要(テストに出ます)
- 13. お勧め書籍
• Scalaスケーラブルプログラミング第2版
– 通称コップ本(Scala作者たちが著者)
– Scalaの入門本&関数型プログラミングの入門本
– 分厚いけど、丁寧な解説
• Scala逆引きレシピ
– Scalaでしたい事をするときに必要なライブラリ
やツールを逆引き形式で知ることができる
– コップ本とセットでお勧め
- 15. 宣伝:
Scala
Conference
in
Japan
2013
• 2013年3月2日(土)
10:00〜18:30
• 会場:東工大 大岡山キャンパス
• 目玉
–
Typesafe社から4名の招待講演者
• 定員:200名
(完売)
• 懇親会はまだ参加可能
• URL:
h3p://scalaconf.jp/
- 16. 海外からの招待講演者
• Jonas
Boner
– Akka作者、Typesafe共同創業者)
• Joshua
Suereth
(Scalaチーム)
– 『Scala
in
Depth』著者
• James
Roper
(Play
2コアチーム)
• Jamie
Allen
(コンサルタント)