Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PHPエンジニアが始めるScala
Search
harakenta
December 04, 2017
Technology
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPエンジニアが始めるScala
青山エンジニア勉強交流会~Scala勉強会~
https://techplay.jp/event/640848
harakenta
December 04, 2017
Other Decks in Technology
See All in Technology
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
エンタメ企業のM&Aを支えるデータ基盤 ― 統合から店舗のリアルタイム分析まで / Data Engineering Summit 2026
genda
0
170
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
160
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
100
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
730
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
100
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
6
4.6k
Getting Started with Google Antigravity
glaforge
0
300
1つのリクエストを追って理解する - llm-dのP/D分離
akhino
1
160
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
160
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
190
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
220
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.2k
Code Reviewing Like a Champion
maltzj
529
40k
Crafting Experiences
bethany
1
380
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Code Review Best Practice
trishagee
74
20k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Rails Girls Zürich Keynote
gr2m
96
14k
Why Our Code Smells
bkeepers
PRO
340
58k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Transcript
1)1ΤϯδχΞ ͕࢝ΊΔ 4DBMB
ݪݡଠ )BSB,FOUB भۀେֶେֶӃमྃ ݱࡏגࣜձࣾϑΝϯίϛϡχέʔγϣϯζ भۀେֶଔۀ
αʔόαΠυΤϯδχΞͱͯ͠ܞΘΔ εϚʔτϑΥϯ͚ΞυωοτϫʔΫ OFOE αʔόαΠυΤϯδχΞͱͯ͠ܞΘΔ
ΞϓϦࠂ͚ ϏσΦΞυϓϥοτϑΥʔϜ ݱࡏαʔόαΠυΤϯδχΞͱͯ͠ܞΘΔ WJJEMF
ܕ ҆ શ ϥ Π ϒ ϥ Ϧ ෆ ม
None
ܕ ҆ શ
$account = array( "name" => "fan", "age" => 18 )
BSSBZ Ͱ ΰχϣΰχϣ
$account = array( "name" => "fan", "age" => "eighteen" )
ͨ·ʹ 4USJOH
case class Account( name: String, age: Int ) Կ͕ೖΔ͔ Ұྎવ
type Name = String type Age = Int case class
Account( name: Name, age: Age ) ܕΤΠϦΞε Ͱݟ͑Δੈք
type Name = String type Age = Int def hoge(name:
Name) : Age = 18 Ҿ ฦΓ Ұྎવ ίϯύΠϧ࣌ʹݟͯ͘ΕΔͷͰߋʹ҆৺
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε
Ҿ ฦ Γ
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε
Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ
$BLF1)1 Ͱ υϯʂʂ
scalaz/ cats બͿ͕࢟ ੜ·Εͨ doobie/ ScalikeJDBC ؔܕϓϩάϥϛϯά %# ૢ࡞
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε
Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε
Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞ ෆ ม
$account = array( "name" => "fan", "age" => 18 )
͍ͭ͜Λ
$account = array( "name" => "fan", "age" => 18 )
unset($account["age"]) ͍ͭ͜Λ ͜͏͢Δͱ όάΒͤ·ͨ͠͝ΊΜͳ͍͞ɺͳΜͰ͠·͢
val account = Account("fan",18) JNNVUBCMF Ͱ҆৺
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε
Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞ ෆ ม WBM JN N VUBCMF
ෆ ม 4DBMB ͷັྗ ͬͯ͜Ε͚ͩʁ
val hoge:Option[String] = Some("fan") val fuga:Option[String] = None 0QUJPO JTTFUɺFNQUZ
OVMMɺOVMM
ෆ ม val hoge:Option[String] = Some("fan") hoge match { case
Some(_) => ... case None => ... } NBUDIDBTF JG ͳΜ͍ͯΒͳ͍ ྻڍܕʢTFBMFEʣͰͷذͩͬͯՄೳ
val hoge : Either[Throwable,Int] = Right(18) &JUIFS 3JHIU SJHIU
val hoge: Either[Throwable,Int] ɹɹɹɹɹɹɹɹɹɹ= Right(18) val fuga: Either[Throwable,Int] ɹɹɹɹɹɹɹɹɹɹ= Right(20)
for { _ <- hoge _ <- fuga } yield () GPS ճ͢ͷศར
val hoge: Either[Throwable,Int] ɹɹɹɹɹɹɹɹɹɹ= Right(18) val fuga: Either[Throwable,Int] ɹɹɹɹɹɹɹɹɹɹ= Right(20)
for { _ <- hoge _ <- fuga } yield () GPS ͑ ͳʹ͜Ε
val hoge: List[Int] = List(1,2,3) val fuga = hoge.map{ i
=> i + 1 } NBQ ͋ ͋
val hoge: List[Int] = List(1,2,3) val fuga = hoge.flatMap{ i
=> List(Option(i + 1)) } qBU.BQ ͋
val hoge : List[Int] = List(1,2,3) val fuga = hoge.traverse{
... } USBWFSTF DBUT ͷͳͷͰৄࡉ࣍ͷൃදͰʂ
ϫλγɺϚμ ॻ͚ΔؾɺγφΠ
0QUJPO NBUDIDBTF &JUIFS NBQqBU.BQ USBWFSTF
Θͳͯ͘ ϓϩμΫτͷ ίʔυॻ͚Δ
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε
Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞ ෆ ม WBM JN N VUBCMF ֶ श ί ε τ
XFC ͰؤுΔ υϫϯΰ༷ͷ 4DBMB5FYU IUUQTEXBOHPHJUIVCJPTDBMB@UFYU
ຊ ͰؤுΔ 4DBMB εέʔϥϒϧϓϩάϥϛϯά
ؤுΒͳ͍ ઌਓͷܙΛआΓΔ ͜ͷޙ͙͢ʂ
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε
Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞ ෆ ม WBM JN N VUBCMF ֶ श ί ε τ X FC ຊ ઌ ਓ ͷ ܙ
1)1ΤϯδχΞ ͕࢝ΊΔ 4DBMB
None