PHPエンジニアが始めるScala
by
harakenta
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
1)1ΤϯδχΞ ͕࢝ΊΔ 4DBMB
Slide 2
Slide 2 text
ݪݡଠ )BSB,FOUB भۀେֶେֶӃमྃ ݱࡏגࣜձࣾϑΝϯίϛϡχέʔγϣϯζ भۀେֶଔۀ
Slide 3
Slide 3 text
αʔόαΠυΤϯδχΞͱͯ͠ܞΘΔ εϚʔτϑΥϯ͚ΞυωοτϫʔΫ OFOE αʔόαΠυΤϯδχΞͱͯ͠ܞΘΔ
Slide 4
Slide 4 text
ΞϓϦࠂ͚ ϏσΦΞυϓϥοτϑΥʔϜ ݱࡏαʔόαΠυΤϯδχΞͱͯ͠ܞΘΔ WJJEMF
Slide 5
Slide 5 text
ܕ ҆ શ ϥ Π ϒ ϥ Ϧ ෆ ม
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
ܕ ҆ શ
Slide 8
Slide 8 text
$account = array( "name" => "fan", "age" => 18 ) BSSBZ Ͱ ΰχϣΰχϣ
Slide 9
Slide 9 text
$account = array( "name" => "fan", "age" => "eighteen" ) ͨ·ʹ 4USJOH
Slide 10
Slide 10 text
case class Account( name: String, age: Int ) Կ͕ೖΔ͔ Ұྎવ
Slide 11
Slide 11 text
type Name = String type Age = Int case class Account( name: Name, age: Age ) ܕΤΠϦΞε Ͱݟ͑Δੈք
Slide 12
Slide 12 text
type Name = String type Age = Int def hoge(name: Name) : Age = 18 Ҿ ฦΓ Ұྎવ ίϯύΠϧ࣌ʹݟͯ͘ΕΔͷͰߋʹ҆৺
Slide 13
Slide 13 text
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε Ҿ ฦ Γ
Slide 14
Slide 14 text
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ
Slide 15
Slide 15 text
$BLF1)1 Ͱ υϯʂʂ
Slide 16
Slide 16 text
scalaz/ cats બͿ͕࢟ ੜ·Εͨ doobie/ ScalikeJDBC ؔܕϓϩάϥϛϯά %# ૢ࡞
Slide 17
Slide 17 text
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞
Slide 18
Slide 18 text
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞ ෆ ม
Slide 19
Slide 19 text
$account = array( "name" => "fan", "age" => 18 ) ͍ͭ͜Λ
Slide 20
Slide 20 text
$account = array( "name" => "fan", "age" => 18 ) unset($account["age"]) ͍ͭ͜Λ ͜͏͢Δͱ όάΒͤ·ͨ͠͝ΊΜͳ͍͞ɺͳΜͰ͠·͢
Slide 21
Slide 21 text
val account = Account("fan",18) JNNVUBCMF Ͱ҆৺
Slide 22
Slide 22 text
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞ ෆ ม WBM JN N VUBCMF
Slide 23
Slide 23 text
ෆ ม 4DBMB ͷັྗ ͬͯ͜Ε͚ͩʁ
Slide 24
Slide 24 text
val hoge:Option[String] = Some("fan") val fuga:Option[String] = None 0QUJPO JTTFUɺFNQUZ OVMMɺOVMM
Slide 25
Slide 25 text
ෆ ม val hoge:Option[String] = Some("fan") hoge match { case Some(_) => ... case None => ... } NBUDIDBTF JG ͳΜ͍ͯΒͳ͍ ྻڍܕʢTFBMFEʣͰͷذͩͬͯՄೳ
Slide 26
Slide 26 text
val hoge : Either[Throwable,Int] = Right(18) &JUIFS 3JHIU SJHIU
Slide 27
Slide 27 text
val hoge: Either[Throwable,Int] ɹɹɹɹɹɹɹɹɹɹ= Right(18) val fuga: Either[Throwable,Int] ɹɹɹɹɹɹɹɹɹɹ= Right(20) for { _ <- hoge _ <- fuga } yield () GPS ճ͢ͷศར
Slide 28
Slide 28 text
val hoge: Either[Throwable,Int] ɹɹɹɹɹɹɹɹɹɹ= Right(18) val fuga: Either[Throwable,Int] ɹɹɹɹɹɹɹɹɹɹ= Right(20) for { _ <- hoge _ <- fuga } yield () GPS ͑ ͳʹ͜Ε
Slide 29
Slide 29 text
val hoge: List[Int] = List(1,2,3) val fuga = hoge.map{ i => i + 1 } NBQ ͋ ͋
Slide 30
Slide 30 text
val hoge: List[Int] = List(1,2,3) val fuga = hoge.flatMap{ i => List(Option(i + 1)) } qBU.BQ ͋
Slide 31
Slide 31 text
val hoge : List[Int] = List(1,2,3) val fuga = hoge.traverse{ ... } USBWFSTF DBUT ͷͳͷͰৄࡉ࣍ͷൃදͰʂ
Slide 32
Slide 32 text
ϫλγɺϚμ ॻ͚ΔؾɺγφΠ
Slide 33
Slide 33 text
0QUJPO NBUDIDBTF &JUIFS NBQqBU.BQ USBWFSTF
Slide 34
Slide 34 text
Θͳͯ͘ ϓϩμΫτͷ ίʔυॻ͚Δ
Slide 35
Slide 35 text
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞ ෆ ม WBM JN N VUBCMF ֶ श ί ε τ
Slide 36
Slide 36 text
XFC ͰؤுΔ υϫϯΰ༷ͷ 4DBMB5FYU IUUQTEXBOHPHJUIVCJPTDBMB@UFYU
Slide 37
Slide 37 text
ຊ ͰؤுΔ 4DBMB εέʔϥϒϧϓϩάϥϛϯά
Slide 38
Slide 38 text
ؤுΒͳ͍ ઌਓͷܙΛआΓΔ ͜ͷޙ͙͢ʂ
Slide 39
Slide 39 text
ܕ ҆ શ DBTFDMBTT ܕ Τ Π Ϧ Ξ ε Ҿ ฦ Γ ϥ Π ϒ ϥ Ϧ ࢟ બ Ϳ ָ ͠ ͞ ෆ ม WBM JN N VUBCMF ֶ श ί ε τ X FC ຊ ઌ ਓ ͷ ܙ
Slide 40
Slide 40 text
1)1ΤϯδχΞ ͕࢝ΊΔ 4DBMB
Slide 41
Slide 41 text
No content