Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPエンジニアが始めるScala
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
harakenta
December 04, 2017
Technology
560
0
Share
PHPエンジニアが始めるScala
青山エンジニア勉強交流会~Scala勉強会~
https://techplay.jp/event/640848
harakenta
December 04, 2017
Other Decks in Technology
See All in Technology
AIプラットフォームを運用し続けるための可観測性
tanimuyk
4
1.1k
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
480
Platform engineering for developers, architects & the rest of us (AI agents)
danielbryantuk
0
170
Datadog 認定試験の概要と対策
uechishingo
0
230
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
1
310
Mastering Ruby Box
tagomoris
3
140
React、まだ楽しくて草
uhyo
7
3.9k
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
shogogg
1
240
OpenID Connectによるサービス間連携
takesection
0
150
ポスター発表&デモと総括 / Poster Presentations & Demonstrations and Summary
ks91
PRO
0
190
long-running-tasks
cipepser
3
460
oracle-to-databricks-migration-with-llm-and-dbt
casek
1
420
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
Building the Perfect Custom Keyboard
takai
2
780
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
220
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
390
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
30 Presentation Tips
portentint
PRO
1
310
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
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