Recommended
PDF
PDF
KEY
PDF
【ScalaMatsuri2016】関西のScalaコミュニティ紹介
PDF
[Scalamatsuri2016]あ、社内コミュニティ
PDF
Contributing to Scala OSS from East Asia #ScalaMatsuri
PDF
PDF
PDF
PDF
PDF
PDF
PDF
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
PDF
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
PDF
PPTX
PDF
PDF
PDF
PDF
PPTX
PDF
2010/11/16 WebプログラマのためのScala入門勉強会@渋谷
PPTX
PDF
PDF
Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話
PPTX
PDF
PDF
PDF
Presentació ICE UAB - Billy Elliot
PDF
More Related Content
PDF
PDF
KEY
PDF
【ScalaMatsuri2016】関西のScalaコミュニティ紹介
PDF
[Scalamatsuri2016]あ、社内コミュニティ
PDF
Contributing to Scala OSS from East Asia #ScalaMatsuri
PDF
PDF
What's hot
PDF
PDF
PDF
PDF
PDF
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
PDF
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
PDF
PPTX
PDF
PDF
PDF
PDF
PPTX
PDF
2010/11/16 WebプログラマのためのScala入門勉強会@渋谷
PPTX
PDF
PDF
Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話
PPTX
PDF
PDF
Viewers also liked
PDF
Presentació ICE UAB - Billy Elliot
PDF
PPTX
PDF
PDF
Scalaで萌える関数型プログラミング[1.1.RC1]
PPSX
PDF
PDF
Don't Turn Your Back on Bullying
PDF
Operaciones con números naturales
PDF
Dekra tread wear methodology and results
PDF
PDF
PDF
PDF
Makalah pengauditan siklus pendanaan/pembelanjaan
PDF
54414198 tutorial-pv-elite-2005 2
PPT
PDF
Similar to Scalaで萌える関数型プログラミング[エッセンシャル版]
KEY
Beginners Scala in FAN 20121009
PPTX
PDF
PDF
PDF
PPT
PPTX
PPTX
PDF
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
PDF
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
PDF
Scala超入門 - 2014/12/13 Scala関西勉強会
PDF
PDF
Object-Funcational Analysis and design
PDF
PPTX
PDF
PPTX
PDF
From Scala/Clojure to Kotlin
PPTX
Scalatronで楽しく学ぶ関数型プログラミング
PDF
Scalaで萌える関数型プログラミング[エッセンシャル版] 1. 2. 今から話す人の
ざっくりとした説明
● 角田裕樹(すみだゆうき)
● Hatena / id:razon
● Twitter / @razon
● ×ラゾン ○レゾン ◎しゾン
● 天領倉敷Scalaの言いだしっぺ
● 本業は Excel方眼紙er Javaプログラマ
3. これからお話しすること
● Scalaってなんぞ
● 関数型プログラミングってなんぞ
● 天領倉敷Scalaって何?
● Scala勉強するのにどうすればいいのさ
● Excel方眼紙爆発しろ
以上をざっくりと解説します
[エッセンシャル版]なので
4. 5. Scalaってなんぞ?
● スイス連邦工科大学(EPFL)のMartin Odersky
が設計したプログラム言語
● JVM上で動作する
(コンパイルするとJavaのバイトコードになる)
※更新は止まっているが.NET向け実装
(scala-msil)もあり
● オブジェクト指向と関数型のハイブリッド
● 関数と言ってもExcel方眼紙ではない
6. Scalaってなんぞ?
● JVM上で動くと何が嬉しいのん?
→Javaとの相互利用が可能
→Javaの資源(ライブラリ・FW・ミドル)
がそのまま利用可能
・JDBCドライバ
・Servlet/JavaEEコンテナ
・などなど…
7. 8. 9. 10. 関数型プログラミングってなんぞ?
● 元々はラムダ計算の概念をプログラミング言
語として体現したもの
→理論計算機科学や数理論理学における、
関数の定義と実行を抽象化した計算体系
● ご先祖様はLISP
● 関数がファーストオブジェクト
→関数を変数に格納できる
→関数を引数の値として指定できる
→関数を戻り値として指定できる
● =高階関数!
11. 関数型プログラミングってなんぞ?
● で、何がうれしいのん?
● 関数型言語といえば、コレクションの操作!
scala> val list = 1 :: 5 :: 2 :: 3 :: 4 :: Nil
list: List[Int] = List(1, 5, 2, 3, 4)
scala> list.filter(_ % 2 == 0)
res0: List[Int] = List(2, 4)
scala> list.sortWith(_ < _)
res1: List[Int] = List(1, 2, 3, 4, 5)
scala> list.map(_ * 2)
res2: List[Int] = List(2, 10, 4, 6, 8)
scala> list.reduceLeft(_ + _)
res3: Int = 15
12. 関数型プログラミングってなんぞ?
● 入力に対し、関数をチェーンすることで
出力形式に変換していく
scala> list.filter(_ % 2 == 0).map(_ * 2).reduceLeft(_ + _)
res4: Int = 12
13. 関数型プログラミングってなんぞ?
● 入力に対し、関数をチェーンすることで
出力形式に変換していく
scala> list.filter(_ % 2 == 0).map(_ * 2).reduceLeft(_ + _)
res4: Int = 12
● 手続き型っぽい処理と比べると…
var sum = 0
for (i <- list) {
if (i % 2 == 0) {
sum += i * 2
}
}
14. 関数型プログラミングってなんぞ?
● その他の特徴
● イミュータブル!
→作成後にその状態を変えることができない
● えっそれ不便じゃね…?
→覚えがありませんか?
→どこかのタイミングでここの変数の値が
おかしくなってエラーが出る
→その変数(状態)が変わる(ことができる)のが悪い
● 関数型らしいコードを書くことで、
変化する状態を最小限にすることができる
(純粋関数型言語のHaskellなどは
そもそも再定義可能な変数がない)
15. 関数型プログラミングってなんぞ?
● イミュータブルの副次的な恩恵
● テストがらくちんになる
(状態を考慮したテストをする必要が
なくなる)
● 並列処理がらくちんになる
状態を持たなければ、スレッドの同期や
ロックなどを考慮する必要がなくなる
→Scalaでは状態を持つ場合でも比較的簡単に並列処理を
行うためのActorライブラリというものもあります
16. 関数型プログラミングってなんぞ?
● その他、関数型言語ならではのステキ文化が
山ほどある
→カリー化、部分適用
→クロージャ
→パターンマッチ
→遅延評価、無限リスト
● 時間がないので今回は割愛します
18. 19. 天領倉敷Scalaって何?
● 岡山県倉敷市周辺でScalaの勉強会を行う
コミュニティ
● 「天領」…江戸時代における幕府の直轄領
倉敷市民がことあるごとに持ち上げる単語
→正直ウンザリする
→皮肉を込めた(天領倉敷(笑))
● ハッシュタグは「#tkscala」
岡山県内の勉強会コミュニティでも異彩を放つTL
として一部で悪名高い
● 次回は8/20(土)でーす
20. 21. Scala勉強するのに
どうしたらいいのさ
書籍
● Scalaスケーラブルプログラミング
[コンセプト&コーディング]
● 通称コップ本
● 聖典(Oderskyの著書)
● キッチリ書いてある分難しい
● あと高い(5k近くする)
● が、買う価値はあり
22. Scala勉強するのに
どうしたらいいのさ
書籍
●
Scalaプログラミング入門
● Lift Frameworkの中の人
David Pollakの著書
● 天領倉敷Scalaではこの本を
ベースに学習しています
● コップ本よりは読みやすい
23. Scala勉強するのに
どうしたらいいのさ
書籍
● プログラミングScala
● 通称バク本
● Twitter APIのリードプログラマーが
書いてる
● 二冊目の本としてオススメの声多し
24. Scala勉強するのに
どうしたらいいのさ
書籍
●
Scala実践プログラミング
● 日本のScala界の巨匠が結集して
書かれた本
● 新しい(先月出ました)
● 和書なので読みやすい
● 初心者向けはコレが鉄板かと
● 上級者からは「物足りない」の声あり
● ただし、他の本で触れられていない部分
についての解説あり
(デザパタ・限定継続など…)
25. Scala勉強するのに
どうしたらいいのさ
フォローするべきScalaスーパーエンジニア
● @kmizu
Scalaエバンジェリストといえばこの人
ScalaDaysという世界のScala祭りで発表する
(もち英語で)スペックの持ち主
Scala絡みとなるとMatzにも噛み付く猛者
● @yuroyoro
日本Scala界のスーパースター
が、前述の本の評判が響いてScalaから遠ざかり中…
最近ではほむほむ言語の中の人として脚光を浴びる
● @xuwei_k
多分ここ最近では日本で一番Scalaについてのブログ記事を
書いてる人
26. Scala勉強するのに
どうしたらいいのさ
フォローするべきScalaスーパーエンジニア
● @keisuke_n
日本のScala祭り「Scala座」第一回主催
WebFlavorというScalaフレームワークの作者でもある
大都会岡山クラスタ
天領倉敷Scalaにも何度か来ていただきました
● @a_hisame, @asami224, @bleis, @cooldaemon, @cpp_akira,
@halcat0x15a, @hito_asa, @j5ik2o, @kaigaiengineer,
@katzchang, @keigoi, @maeda_, @maiha, @mumoshu, @mzp,
@NetPenguin, @nosen, @nouvellelune, @osiire, @papamitra,
@PG_kura, @pomu0325, @rf0444, @RKTM, @ryugate,
@ScalaTohoku, @shomah4a, @takedasoft, @terurou,
@yasushia, @ymnk, @yoshihiro503
27. あと最後に
● 7/17(日)のオープンラボ備後にて、
今回のLTの完全版やります!
● 何か1時間くらい割り当てられちゃってるん
ですけど…
● という訳で興味があったら来てね!
28. あと最後に
● 魔法少女Scalaちゃん(@scalachan)を
今すぐフォロー!
29. 30.