Recommended
PDF
オブジェクト指向開発におけるObject-Functional Programming
PDF
KEY
PDF
PDF
PDF
PDF
Strings and Characters in Swift
PDF
What Dotty fixes @ Scala関西サミット
PDF
PDF
PDF
Scala の関数型プログラミングを支える技術
PDF
PDF
PPTX
PDF
PDF
PDF
PDF
PPT
KEY
PPTX
PDF
PPTX
PDF
PDF
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
PDF
PPTX
PDF
PDF
PFI Christmas seminar 2009
PDF
More Related Content
PDF
オブジェクト指向開発におけるObject-Functional Programming
PDF
KEY
PDF
PDF
PDF
PDF
Strings and Characters in Swift
PDF
What Dotty fixes @ Scala関西サミット
What's hot
PDF
PDF
PDF
Scala の関数型プログラミングを支える技術
PDF
PDF
PPTX
PDF
PDF
Viewers also liked
PDF
PDF
PPT
KEY
PPTX
PDF
PPTX
PDF
PDF
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
Similar to Scalaz
PDF
PPTX
PDF
PDF
PFI Christmas seminar 2009
PDF
PDF
PPTX
Introduction to Functional Programming
PDF
PPT
PPTX
PDF
ODP
PDF
PDF
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
PDF
KEY
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
PDF
PPTX
PDF
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
PDF
FP習熟度レベルとFSharpxのIteratee
More from Kota Mizushima
PDF
ドワンゴにおける新卒エンジニア向けScala研修について
PDF
PDF
PDF
PDF
Scala Daysに行ってみて - あるいはスイス旅行記 -
PDF
PDF
PPT
PDF
Scala Performance Tuning Tips
PDF
PDF
PDF
About Capabilities for Uniqueness and Borrowing
PDF
Scala Macros makes it easy to provide useful libraries
PDF
PDF
PDF
PDF
PDF
PDF
PDF
Scalaz 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 16. 17. 18. 19. 20. 21. 23. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 末尾にs
↓
implicit conversion
を提供するtrait
48. 末尾にW
↓
implicit conversion
によって拡張するための型
PimpedType[T]を継承
49. 50. 51. 52. 53. 54. import scalaz._
import Scalaz._
var i = 1
i < 3 ∧ i > 0 true
i < 1 ∨ i == 1 true
i == 1 when { i+= 1 }
(i < 3).guard[List](1)
i != 2 unless { i+= 1 }
...
55. 56. 57. 58. 59. 60. 61. 62. val i: Option[Int] = Some(100)
val j: Option[Int] = None
val k: Option[Double] = Some(50.0)
val l: Option[Double] = None
i.orZero 100
j.orZero 0
k.orZero 50.0
l.orZero 0.0
i.orEmpty[List] List(100)
j.orEmpty[List] List()
k.orEmpty[Vector] Vector(100)
l.orEmpty[Vector] Vector()
i | 200 100
j | 200 200
...
63. 64. 65. 66. import scalaz._
import Scalaz._
val lst = List(1, 2, 3)
lst.toNel Some(NonEmptyList(1, 2, 3))
lst.powerset List(List(1, 2, 3), List(1, 2), ...)
lst.filterM{x => Set(x < 3)} Set(List(1, 2))
lst.filterM{x => Set(x < 2)} Set(List(1))
lst.tails.toList List(List(1, 2, 3), ...,List())
67. 68. 69. 70. 71. 72. 73. 74. 75. 76. val i: Option[Int] = Some(100)
val j: Option[Int] = None
val k: Option[Double] = Some(50.0)
val l: Option[Double] = None
i.orZero 100
j.orZero 0
k.orZero 50.0
l.orZero 0.0
i.orEmpty[List] List(100)
j.orEmpty[List] List()
k.orEmpty[Vector] Vector(100)
l.orEmpty[Vector] Vector()
i | 200 100
j | 200 200
...
77. 78. 79. 80. 81. 82. 83. Zero[A
[A]):
def unary_~(implicit z: Zero[A]): A =
value getOrElse z.zero
Zero[A
[A]):
def orZero(implicit z: Zero[A]): A = ~this
84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. val list = List(1,2,3)
val zipper = list.toZipper.get.tryNext
val updated = zipper.insert(10).insert(20)
updated.toStream.toList // List(1,2,10,20,3)
109. 110. 111. 112. 113. 114. 115. 116. 117. 118.