際際滷

際際滷Share a Scribd company logo
Functions
Function: def 
def foo(x: Int)(y: Int): Int = x + y 
foo(1)(2) //3 
仍亳 仗亠亠亟 于亰仂于仂仄 仂亳 仍从舒 仆舒 
仆从亳, 仗仂亳亰仂亶亟亠 亠亠 于亰仂于
Function: apply 
object foo { 
def apply(x: Int)(y: Int): Int = { 
x + y 
} 
} 
foo(1)(2) //3 
舒 舒仄仂仄 亟亠仍亠 仗亠亠亟 于亰仂于仂仄 仄仂亢亠 弍 
仍ミ頴笑 于舒亢亠仆亳亠.
Function: update 
亠 亳仆舒从亳亠从亳亶 舒舒: 
class A { 
def update(x: Int, y: String) = y.length - x 
} 
val foo: A = new A 
foo(1) = "text" 
foo.update(1, "text")
Collections: Arrays 
Array.empty[Int] 
Array.ofDim[Int](2) 
new Array[Int](2) 
Array(1, 2, 3) 
val a = Array.fill(1, 2)(0) 
a(1)(2) 
a.apply(1)(2) 
a(0).update(1, 2) 
a(0)(1) = 2 
for (arr <- a; elem <- arr) print(elem)
Collections: Lists 
List.empty[Int] 
List(1, 2, 3) 
val a = 1 :: 2 :: 3 :: Nil 
1 :: a 
a.updated(1, 1) 
a ::: a
Case classes 
case class A(x: Int) 
于仂仄舒亳亠从亳 亟仂弍舒于仍磳 property 亟仍 
仗舒舒仄亠仂于, 舒 舒从亢亠 仄亠仂亟: 
equals, hashCode, toString 
亠仂亟 companion object: 
apply, unapply
By name parameters 
亠 仂亟亳仆 亳仆舒从亳亠从亳亶 舒舒: 
def foo(x: => Int) = { 
print(x) 
print(x) 
} 
foo(1)
By name parameters 
舒 舒仄仂仄 亟亠仍亠 仂: 
def foo(x: () => Int) = { 
print(x()) 
print(x()) 
} 
foo(() => 1) 
仂亢仆仂 仍亳 仂弍磦仍  case class?
Default parameters 
仍 仆亠从仂仂 仗舒舒仄亠仂于 仄仂亢仆仂 
仂仗亠亟亠仍亳 亟亠仂仍仆仂亠 亰仆舒亠仆亳亠: 
def foo(x: Int = 1, y: Int = 2) = x + y 
foo(1)
Default parameters 
丼仂 仗仂仍亳 亰亟亠? 
class C { 
def sum(x: Int = 1, y: Int = 2): Int = x + y 
} 
class D extends C { 
override def sum(y: Int = 3, x: Int = 4): Int = super.sum(x, y) 
} 
val d: D = new D 
val c: C = d 
c.sum(x = 0) 
d.sum(x = 0)
Repeated parameters 
仂仍亠亟仆亳亶 仗舒舒仄亠 仄仂亢亠 弍 
仗仂于仂ム亳仄: 
def foo(x: Int, y: String*) = { 
x + y.length 
} 
foo(1, "a", "b") 
foo(1, List("a", "b"): _*)
Repeated parameters 
仍 仂于仄亠亳仄仂亳  Java: 
import scala.annotation.varargs 
def foo(x: Int, @varargs y: String*) = { 
x + y.length 
}
Named parameters 
仂亢仆仂 于亰于舒 于 仍ミ頴笑 仗仂磲从亠: 
def foo(x: Int, y: Int) = x + y 
foo(y = 1, x = 2) 
仍亳 仗仂舒仆仆仂亳仂于舒 亰仆舒亠仆亳亠: 
def foo(isImportant: Boolean, x: Int) {} 
foo(isImportant = false, 2)
Local functions 
仂亢仆仂 仂弍磦仍 仆从亳亳 仍仂从舒仍仆仂: 
object Main { 
def main(args: Array[String]) { 
def calc() {} 
calc() 
} 
}
Local functions 
弌仍亢亳 仂 亟于仄 亠仍礆: 
1. 弌仗亳仂从 仗舒舒仄亠仂于 弍亟亠 从仂仂亠, 舒从 从舒从 
仍仂从舒仍仆舒 仆从亳 于亳亟亳 仂从亢亠仆亳亠. 
2. 仂仗仂仍仆亳亠仍仆亶 仂于亠仆 亳仆从舒仗仍亳亳.
FunctionN, apply 
trait Function2[-T1, -T2, +R] extends AnyRef { self => 
def apply(v1: T1, v2: T2): R 
def curried: T1 => T2 => R = { 
(x1: T1) => (x2: T2) => apply(x1, x2) 
} 
def tupled: Tuple2[T1, T2] => R = { 
case Tuple2(x1, x2) => apply(x1, x2) 
} 
override def toString() = "<function2>" 
}
Functions shorthands 
仂 仄仂仍舒仆亳 舒仆仂仆亳仄仆舒 仆从亳: 
(x: Int) => x + 1 
仂 亠仍亳 亠 仂亢亳亟舒亠仄仂亠 亰仆舒亠仆亳亠: 
val fun: Int => Int = x => x + 1 
仂亢仆仂 亰舒仗亳舒 亟舒亢亠 从仂仂亠: 
val fun: Int => Int = _ + 1
Placeholder syntax 
仂亢仆仂 亳仗仂仍亰仂于舒 仆亠从仂仍从仂 仗亠亠仄亠仆仆: 
val sum: (Int, Int) => Int = _ + _ 
舒仗亳仄亠, 从舒从 仆亠从仂仍从仂 亳亰 仗舒舒仄亠仂于: 
def foo(x: Int, y: Int, z: Int) = x + y + z 
val z: (Int, Int) => Int = foo(_, y = 2, _) 
z(1, 2) 
仍亳 仂-仂 仂于亠仄 仄亟亠仆仂亠: 
val x: (String, Int, Int) => String = _.substring(_, _)
Eta-expansion 
 亠亠 仂亟仆舒 于仂亰仄仂亢仆仂 仆舒仗亳舒 
舒仆仂仆亳仄仆 仆从亳: 
def inc(x: Int): Int = x + 1 
val l: List[Int] = List(1, 2, 3) 
l.map(x => inc(x)) 
l.map(inc(_)) 
l.map(inc _) 
l map inc
Partial functions 
弌仗亠亳舒仍仆亶 亳仆舒从亳: 
val x: Int => Int = { case x => x + 1 } 
val y: (Int, Int) => Int = { 
case (x, y) => x + y 
} 
val f: PartialFunction[Any, String] = { 
case i: Int => i.toString 
}
Pattern matching 
仂亠 仍舒亳 从舒从 舒亳亠仆仆亶 switch: 
val x: Any 
x match { 
case 1 => 
case '1' => 
case "1" => 
case _ => 
}
Variables patterns 
舒亠仆 于 于亳亟亠 亳亟亠仆亳亳从舒仂舒 仂 
仂仆仂亶 弍从于 亰舒亟舒ム 仗亠亠仄亠仆仆: 
"text" match { 
case text => 
case text: String => 
case text@name => 
}
More... 
仂亢仆仂 舒亳 从舒从 亞仂亟仆仂: 
"scala.course@gmail.com" match { 
case Email(name, domain) => //code 
case _ => 
}
Unapply 
object Email { 
def unapply(s: String): Option[(String, String)] = { 
val parts = s split '@' 
if (parts.length == 2) { 
Some(parts(0), parts(1)) 
} else None 
} 
}
Unapply 
def unapply(m: MatchedType): Boolean 
def unapply(m: MatchedType): Option[A] 
def unapply(m: MatchedType): Option[(A1, A2, , An)]

More Related Content

What's hot (20)

弍舒弍仂从舒 亠从舒 仆舒 Haskell - 仂 仗仂仂!
弍舒弍仂从舒 亠从舒 仆舒 Haskell - 仂 仗仂仂!弍舒弍仂从舒 亠从舒 仆舒 Haskell - 仂 仗仂仂!
弍舒弍仂从舒 亠从舒 仆舒 Haskell - 仂 仗仂仂!
Mike Potanin
Python. 弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠
Python. 弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 Python. 弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠
Python. 弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠
Theoretical mechanics department
仆亠仗亠亳仂于舒仆亳亠 磶从仂于 仗仂仄仂 Free-仄仂仆舒亟
仆亠仗亠亳仂于舒仆亳亠 磶从仂于  仗仂仄仂 Free-仄仂仆舒亟仆亠仗亠亳仂于舒仆亳亠 磶从仂于  仗仂仄仂 Free-仄仂仆舒亟
仆亠仗亠亳仂于舒仆亳亠 磶从仂于 仗仂仄仂 Free-仄仂仆舒亟
Zheka Kozlov
仂仆舒亟 亟仍 弍舒舒弍舒仆亳从仂于. 仆仂仆 丱仂仍仂仄于
仂仆舒亟 亟仍 弍舒舒弍舒仆亳从仂于. 仆仂仆 丱仂仍仂仄于仂仆舒亟 亟仍 弍舒舒弍舒仆亳从仂于. 仆仂仆 丱仂仍仂仄于
仂仆舒亟 亟仍 弍舒舒弍舒仆亳从仂于. 仆仂仆 丱仂仍仂仄于
豫亳亶 弌仂于亠从亳亶
仆仂于 SciPy
仆仂于 SciPy仆仂于 SciPy
仆仂于 SciPy
Theoretical mechanics department
Charming python sc2-8
Charming python sc2-8Charming python sc2-8
Charming python sc2-8
Vladislav Ananev
8 于亠舒 亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 Python (. 仆舒仆亠于)
8 于亠舒  亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 Python (. 仆舒仆亠于)8 于亠舒  亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 Python (. 仆舒仆亠于)
8 于亠舒 亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 Python (. 仆舒仆亠于)
Smolensk Computer Science Club
仍舒弍仂舒仂仆舒 舒弍仂舒 5
仍舒弍仂舒仂仆舒 舒弍仂舒 5仍舒弍仂舒仂仆舒 舒弍仂舒 5
仍舒弍仂舒仂仆舒 舒弍仂舒 5
Zhanna Kazakova
仆仂于 NumPy
仆仂于 NumPy仆仂于 NumPy
仆仂于 NumPy
Theoretical mechanics department
个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠.弌仗亳从亳. 个仆从亳亳 于亳 仗仂磲从仂于
个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠.弌仗亳从亳. 个仆从亳亳 于亳 仗仂磲从仂于个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠.弌仗亳从亳. 个仆从亳亳 于亳 仗仂磲从仂于
个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠.弌仗亳从亳. 个仆从亳亳 于亳 仗仂磲从仂于
弌亳亠仄舒 亟亳舒仆亳仂仆仆仂亞仂 仂弍亠仆亳 MyDLS
亠舒仗仂亞舒仄仄亳仂于舒仆亳亠 亰舒 亞舒仆 仗亳仍亳亳
亠舒仗仂亞舒仄仄亳仂于舒仆亳亠 亰舒 亞舒仆 仗亳仍亳亳亠舒仗仂亞舒仄仄亳仂于舒仆亳亠 亰舒 亞舒仆 仗亳仍亳亳
亠舒仗仂亞舒仄仄亳仂于舒仆亳亠 亰舒 亞舒仆 仗亳仍亳亳
Alexander Schepanovski
Functional Programming in Python
Functional Programming in PythonFunctional Programming in Python
Functional Programming in Python
dudarev
仆仂于 Python. 个仆从亳亳
仆仂于 Python. 个仆从亳亳仆仂于 Python. 个仆从亳亳
仆仂于 Python. 个仆从亳亳
Theoretical mechanics department
亠从亳 7: 亠亠亟亳 仗亳仂亳亠舒仄亳. 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
亠从亳 7: 亠亠亟亳  仗亳仂亳亠舒仄亳. 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)亠从亳 7: 亠亠亟亳  仗亳仂亳亠舒仄亳. 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
亠从亳 7: 亠亠亟亳 仗亳仂亳亠舒仄亳. 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
Mikhail Kurnosov
亠从亳 7. 亳仆舒仆亠 从亳. 亳舒仄亳亟舒仍仆舒 仂亳仂于从舒
亠从亳 7. 亳仆舒仆亠 从亳. 亳舒仄亳亟舒仍仆舒 仂亳仂于从舒亠从亳 7. 亳仆舒仆亠 从亳. 亳舒仄亳亟舒仍仆舒 仂亳仂于从舒
亠从亳 7. 亳仆舒仆亠 从亳. 亳舒仄亳亟舒仍仆舒 仂亳仂于从舒
Mikhail Kurnosov
亠从亳 4. 弌亠从亳 亳 仂亠亠亟亳
亠从亳 4. 弌亠从亳 亳 仂亠亠亟亳亠从亳 4. 弌亠从亳 亳 仂亠亠亟亳
亠从亳 4. 弌亠从亳 亳 仂亠亠亟亳
Mikhail Kurnosov
亠从亳 4: 弌亠从亳 亳 仂亠亠亟亳
亠从亳 4: 弌亠从亳 亳 仂亠亠亟亳亠从亳 4: 弌亠从亳 亳 仂亠亠亟亳
亠从亳 4: 弌亠从亳 亳 仂亠亠亟亳
Mikhail Kurnosov
2.4 仗仂仍亰仂于舒仆亳亠 从舒亰舒亠仍亠亶
2.4 仗仂仍亰仂于舒仆亳亠 从舒亰舒亠仍亠亶2.4 仗仂仍亰仂于舒仆亳亠 从舒亰舒亠仍亠亶
2.4 仗仂仍亰仂于舒仆亳亠 从舒亰舒亠仍亠亶
DEVTYPE
5.1 亠亠亞亰从舒 仂仗亠舒仂仂于
5.1 亠亠亞亰从舒 仂仗亠舒仂仂于5.1 亠亠亞亰从舒 仂仗亠舒仂仂于
5.1 亠亠亞亰从舒 仂仗亠舒仂仂于
DEVTYPE
亠从亳 7: 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
亠从亳 7: 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)亠从亳 7: 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
亠从亳 7: 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
Mikhail Kurnosov
弍舒弍仂从舒 亠从舒 仆舒 Haskell - 仂 仗仂仂!
弍舒弍仂从舒 亠从舒 仆舒 Haskell - 仂 仗仂仂!弍舒弍仂从舒 亠从舒 仆舒 Haskell - 仂 仗仂仂!
弍舒弍仂从舒 亠从舒 仆舒 Haskell - 仂 仗仂仂!
Mike Potanin
Python. 弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠
Python. 弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 Python. 弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠
Python. 弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠
Theoretical mechanics department
仆亠仗亠亳仂于舒仆亳亠 磶从仂于 仗仂仄仂 Free-仄仂仆舒亟
仆亠仗亠亳仂于舒仆亳亠 磶从仂于  仗仂仄仂 Free-仄仂仆舒亟仆亠仗亠亳仂于舒仆亳亠 磶从仂于  仗仂仄仂 Free-仄仂仆舒亟
仆亠仗亠亳仂于舒仆亳亠 磶从仂于 仗仂仄仂 Free-仄仂仆舒亟
Zheka Kozlov
仂仆舒亟 亟仍 弍舒舒弍舒仆亳从仂于. 仆仂仆 丱仂仍仂仄于
仂仆舒亟 亟仍 弍舒舒弍舒仆亳从仂于. 仆仂仆 丱仂仍仂仄于仂仆舒亟 亟仍 弍舒舒弍舒仆亳从仂于. 仆仂仆 丱仂仍仂仄于
仂仆舒亟 亟仍 弍舒舒弍舒仆亳从仂于. 仆仂仆 丱仂仍仂仄于
豫亳亶 弌仂于亠从亳亶
8 于亠舒 亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 Python (. 仆舒仆亠于)
8 于亠舒  亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 Python (. 仆舒仆亠于)8 于亠舒  亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 Python (. 仆舒仆亠于)
8 于亠舒 亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 Python (. 仆舒仆亠于)
Smolensk Computer Science Club
仍舒弍仂舒仂仆舒 舒弍仂舒 5
仍舒弍仂舒仂仆舒 舒弍仂舒 5仍舒弍仂舒仂仆舒 舒弍仂舒 5
仍舒弍仂舒仂仆舒 舒弍仂舒 5
Zhanna Kazakova
亠舒仗仂亞舒仄仄亳仂于舒仆亳亠 亰舒 亞舒仆 仗亳仍亳亳
亠舒仗仂亞舒仄仄亳仂于舒仆亳亠 亰舒 亞舒仆 仗亳仍亳亳亠舒仗仂亞舒仄仄亳仂于舒仆亳亠 亰舒 亞舒仆 仗亳仍亳亳
亠舒仗仂亞舒仄仄亳仂于舒仆亳亠 亰舒 亞舒仆 仗亳仍亳亳
Alexander Schepanovski
Functional Programming in Python
Functional Programming in PythonFunctional Programming in Python
Functional Programming in Python
dudarev
亠从亳 7: 亠亠亟亳 仗亳仂亳亠舒仄亳. 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
亠从亳 7: 亠亠亟亳  仗亳仂亳亠舒仄亳. 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)亠从亳 7: 亠亠亟亳  仗亳仂亳亠舒仄亳. 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
亠从亳 7: 亠亠亟亳 仗亳仂亳亠舒仄亳. 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
Mikhail Kurnosov
亠从亳 7. 亳仆舒仆亠 从亳. 亳舒仄亳亟舒仍仆舒 仂亳仂于从舒
亠从亳 7. 亳仆舒仆亠 从亳. 亳舒仄亳亟舒仍仆舒 仂亳仂于从舒亠从亳 7. 亳仆舒仆亠 从亳. 亳舒仄亳亟舒仍仆舒 仂亳仂于从舒
亠从亳 7. 亳仆舒仆亠 从亳. 亳舒仄亳亟舒仍仆舒 仂亳仂于从舒
Mikhail Kurnosov
亠从亳 4. 弌亠从亳 亳 仂亠亠亟亳
亠从亳 4. 弌亠从亳 亳 仂亠亠亟亳亠从亳 4. 弌亠从亳 亳 仂亠亠亟亳
亠从亳 4. 弌亠从亳 亳 仂亠亠亟亳
Mikhail Kurnosov
亠从亳 4: 弌亠从亳 亳 仂亠亠亟亳
亠从亳 4: 弌亠从亳 亳 仂亠亠亟亳亠从亳 4: 弌亠从亳 亳 仂亠亠亟亳
亠从亳 4: 弌亠从亳 亳 仂亠亠亟亳
Mikhail Kurnosov
2.4 仗仂仍亰仂于舒仆亳亠 从舒亰舒亠仍亠亶
2.4 仗仂仍亰仂于舒仆亳亠 从舒亰舒亠仍亠亶2.4 仗仂仍亰仂于舒仆亳亠 从舒亰舒亠仍亠亶
2.4 仗仂仍亰仂于舒仆亳亠 从舒亰舒亠仍亠亶
DEVTYPE
5.1 亠亠亞亰从舒 仂仗亠舒仂仂于
5.1 亠亠亞亰从舒 仂仗亠舒仂仂于5.1 亠亠亞亰从舒 仂仗亠舒仂仂于
5.1 亠亠亞亰从舒 仂仗亠舒仂仂于
DEVTYPE
亠从亳 7: 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
亠从亳 7: 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)亠从亳 7: 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
亠从亳 7: 亳仆舒仆亠 从亳 (仗亳舒仄亳亟)
Mikhail Kurnosov

Viewers also liked (20)

舒于亠仍 舒于仍仂于 - Scala 亟仍 仗仂亠亳仂仆舒仍仂于 - Joker 2013
舒于亠仍 舒于仍仂于 - Scala 亟仍 仗仂亠亳仂仆舒仍仂于 - Joker 2013舒于亠仍 舒于仍仂于 - Scala 亟仍 仗仂亠亳仂仆舒仍仂于 - Joker 2013
舒于亠仍 舒于仍仂于 - Scala 亟仍 仗仂亠亳仂仆舒仍仂于 - Joker 2013
ScalaNsk
Under the hood of scala implicits (Scala eXchange 2014)
Under the hood of scala implicits (Scala eXchange 2014)Under the hood of scala implicits (Scala eXchange 2014)
Under the hood of scala implicits (Scala eXchange 2014)
Alexander Podkhalyuzin
Under the hood of scala implicits (kl10tch 10.03.2015)
Under the hood of scala implicits (kl10tch 10.03.2015)Under the hood of scala implicits (kl10tch 10.03.2015)
Under the hood of scala implicits (kl10tch 10.03.2015)
Alexander Podkhalyuzin
Backend: 亳亠仄 仆舒 Scala 亟仍 弍舒亰亠舒
Backend: 亳亠仄 仆舒 Scala 亟仍 弍舒亰亠舒Backend: 亳亠仄 仆舒 Scala 亟仍 弍舒亰亠舒
Backend: 亳亠仄 仆舒 Scala 亟仍 弍舒亰亠舒
CodeFest
Scala 亟仍 于亠 (个 2015)
Scala 亟仍 于亠 (个 2015)Scala 亟仍 于亠 (个 2015)
Scala 亟仍 于亠 (个 2015)
亠仆亳亶 亳亢亠仍亠于
Lec 2
Lec 2Lec 2
Lec 2
Alexander Rusin
Distributed erlang
Distributed erlangDistributed erlang
Distributed erlang
Yuri Zhloba
弌舒仄舒亶从亳亶 仗 仄仂仍仂亟仂亞仂 Scala-仗仂亞舒仄仄亳舒
弌舒仄舒亶从亳亶 仗 仄仂仍仂亟仂亞仂 Scala-仗仂亞舒仄仄亳舒弌舒仄舒亶从亳亶 仗 仄仂仍仂亟仂亞仂 Scala-仗仂亞舒仄仄亳舒
弌舒仄舒亶从亳亶 仗 仄仂仍仂亟仂亞仂 Scala-仗仂亞舒仄仄亳舒
Sergey Lobin
亠亠仂亟 仆舒 Scala: 弍仂亳从仂仄 仗仂 亞舒弍仍礆
亠亠仂亟 仆舒 Scala: 弍仂亳从仂仄 仗仂 亞舒弍仍礆亠亠仂亟 仆舒 Scala: 弍仂亳从仂仄 仗仂 亞舒弍仍礆
亠亠仂亟 仆舒 Scala: 弍仂亳从仂仄 仗仂 亞舒弍仍礆
Sveta Bozhko
Scala performance 仗仂亟 从舒仗仂仂仄
Scala performance 仗仂亟 从舒仗仂仂仄Scala performance 仗仂亟 从舒仗仂仂仄
Scala performance 仗仂亟 从舒仗仂仂仄
Roman Grebennikov
Implicit Implicit Scala
Implicit Implicit ScalaImplicit Implicit Scala
Implicit Implicit Scala
Kota Mizushima
Clojure #2 (2014)
Clojure #2 (2014)Clojure #2 (2014)
Clojure #2 (2014)
Alexander Podkhalyuzin
舒于亠仍 舒于仍仂于 - Scala 亟仍 仗仂亠亳仂仆舒仍仂于 - Joker 2013
舒于亠仍 舒于仍仂于 - Scala 亟仍 仗仂亠亳仂仆舒仍仂于 - Joker 2013舒于亠仍 舒于仍仂于 - Scala 亟仍 仗仂亠亳仂仆舒仍仂于 - Joker 2013
舒于亠仍 舒于仍仂于 - Scala 亟仍 仗仂亠亳仂仆舒仍仂于 - Joker 2013
ScalaNsk
Under the hood of scala implicits (Scala eXchange 2014)
Under the hood of scala implicits (Scala eXchange 2014)Under the hood of scala implicits (Scala eXchange 2014)
Under the hood of scala implicits (Scala eXchange 2014)
Alexander Podkhalyuzin
Under the hood of scala implicits (kl10tch 10.03.2015)
Under the hood of scala implicits (kl10tch 10.03.2015)Under the hood of scala implicits (kl10tch 10.03.2015)
Under the hood of scala implicits (kl10tch 10.03.2015)
Alexander Podkhalyuzin
Backend: 亳亠仄 仆舒 Scala 亟仍 弍舒亰亠舒
Backend: 亳亠仄 仆舒 Scala 亟仍 弍舒亰亠舒Backend: 亳亠仄 仆舒 Scala 亟仍 弍舒亰亠舒
Backend: 亳亠仄 仆舒 Scala 亟仍 弍舒亰亠舒
CodeFest
Distributed erlang
Distributed erlangDistributed erlang
Distributed erlang
Yuri Zhloba
弌舒仄舒亶从亳亶 仗 仄仂仍仂亟仂亞仂 Scala-仗仂亞舒仄仄亳舒
弌舒仄舒亶从亳亶 仗 仄仂仍仂亟仂亞仂 Scala-仗仂亞舒仄仄亳舒弌舒仄舒亶从亳亶 仗 仄仂仍仂亟仂亞仂 Scala-仗仂亞舒仄仄亳舒
弌舒仄舒亶从亳亶 仗 仄仂仍仂亟仂亞仂 Scala-仗仂亞舒仄仄亳舒
Sergey Lobin
亠亠仂亟 仆舒 Scala: 弍仂亳从仂仄 仗仂 亞舒弍仍礆
亠亠仂亟 仆舒 Scala: 弍仂亳从仂仄 仗仂 亞舒弍仍礆亠亠仂亟 仆舒 Scala: 弍仂亳从仂仄 仗仂 亞舒弍仍礆
亠亠仂亟 仆舒 Scala: 弍仂亳从仂仄 仗仂 亞舒弍仍礆
Sveta Bozhko
Scala performance 仗仂亟 从舒仗仂仂仄
Scala performance 仗仂亟 从舒仗仂仂仄Scala performance 仗仂亟 从舒仗仂仂仄
Scala performance 仗仂亟 从舒仗仂仂仄
Roman Grebennikov
Implicit Implicit Scala
Implicit Implicit ScalaImplicit Implicit Scala
Implicit Implicit Scala
Kota Mizushima

Similar to Scala #3 (20)

Scala
ScalaScala
Scala
DevDay
丱舒舒从亠仆亠 亠 仆从亳仂仆舒仍仆 磶从仂于 仗仂亞舒仄仄亳仂于舒仆亳
丱舒舒从亠仆亠 亠 仆从亳仂仆舒仍仆 磶从仂于 仗仂亞舒仄仄亳仂于舒仆亳丱舒舒从亠仆亠 亠 仆从亳仂仆舒仍仆 磶从仂于 仗仂亞舒仄仄亳仂于舒仆亳
丱舒舒从亠仆亠 亠 仆从亳仂仆舒仍仆 磶从仂于 仗仂亞舒仄仄亳仂于舒仆亳
Alex.Kolonitsky
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)
Dmitry Stropalov
Cocoheads Moscow September
Cocoheads Moscow SeptemberCocoheads Moscow September
Cocoheads Moscow September
Alexander Zimin
Scala on android
Scala on androidScala on android
Scala on android
Valeriya Atamanova
丕仂从 7. 仆亠仗亠舒亳 亳 从仂仄仗亳仍亳 仆从亳仂仆舒仍仆 仗仂亞舒仄仄.
丕仂从 7. 仆亠仗亠舒亳 亳 从仂仄仗亳仍亳 仆从亳仂仆舒仍仆 仗仂亞舒仄仄.丕仂从 7. 仆亠仗亠舒亳 亳 从仂仄仗亳仍亳 仆从亳仂仆舒仍仆 仗仂亞舒仄仄.
丕仂从 7. 仆亠仗亠舒亳 亳 从仂仄仗亳仍亳 仆从亳仂仆舒仍仆 仗仂亞舒仄仄.
弌亳亠仄舒 亟亳舒仆亳仂仆仆仂亞仂 仂弍亠仆亳 MyDLS
亳 Python 仆从亳仂仆舒仍亳仄 仗仂仄仂 弍亳弍仍亳仂亠从
亳 Python  仆从亳仂仆舒仍亳仄  仗仂仄仂 弍亳弍仍亳仂亠从亳 Python  仆从亳仂仆舒仍亳仄  仗仂仄仂 弍亳弍仍亳仂亠从
亳 Python 仆从亳仂仆舒仍亳仄 仗仂仄仂 弍亳弍仍亳仂亠从
PyNSK
Java 8. Lambdas
Java 8. LambdasJava 8. Lambdas
Java 8. Lambdas
Nakraynikov Oleg
Iteratee explained.
Iteratee explained.Iteratee explained.
Iteratee explained.
Ruslan Shevchenko
丕仂从 6. 丼亳仂亠 仍礆弍亟舒-亳亳仍亠仆亳亠.
丕仂从 6. 丼亳仂亠 仍礆弍亟舒-亳亳仍亠仆亳亠. 丕仂从 6. 丼亳仂亠 仍礆弍亟舒-亳亳仍亠仆亳亠.
丕仂从 6. 丼亳仂亠 仍礆弍亟舒-亳亳仍亠仆亳亠.
弌亳亠仄舒 亟亳舒仆亳仂仆仆仂亞仂 仂弍亠仆亳 MyDLS
丕仂从 3. 舒亳仆亞 亳 仍亠仆亳于亠 于亳仍亠仆亳.
丕仂从 3. 舒亳仆亞 亳 仍亠仆亳于亠 于亳仍亠仆亳.丕仂从 3. 舒亳仆亞 亳 仍亠仆亳于亠 于亳仍亠仆亳.
丕仂从 3. 舒亳仆亞 亳 仍亠仆亳于亠 于亳仍亠仆亳.
弌亳亠仄舒 亟亳舒仆亳仂仆仆仂亞仂 仂弍亠仆亳 MyDLS
舒于亠仍 舒于仍仂于 - Scala 亟仍 Java 仗仂亞舒仄仄亳仂于 (JavaDay Nsk 28.11.2013)
舒于亠仍 舒于仍仂于 - Scala 亟仍 Java 仗仂亞舒仄仄亳仂于 (JavaDay Nsk 28.11.2013)舒于亠仍 舒于仍仂于 - Scala 亟仍 Java 仗仂亞舒仄仄亳仂于 (JavaDay Nsk 28.11.2013)
舒于亠仍 舒于仍仂于 - Scala 亟仍 Java 仗仂亞舒仄仄亳仂于 (JavaDay Nsk 28.11.2013)
ScalaNsk
Reactive extensions
Reactive extensionsReactive extensions
Reactive extensions
Sergey Teplyakov
亠从亳 12 (舒 2): 亊亰从亳 仗仂亞舒仄仄亳仂于舒仆亳 亠仄亠亶于舒 PGAS: IBM X10
亠从亳 12 (舒 2): 亊亰从亳 仗仂亞舒仄仄亳仂于舒仆亳 亠仄亠亶于舒 PGAS: IBM X10亠从亳 12 (舒 2): 亊亰从亳 仗仂亞舒仄仄亳仂于舒仆亳 亠仄亠亶于舒 PGAS: IBM X10
亠从亳 12 (舒 2): 亊亰从亳 仗仂亞舒仄仄亳仂于舒仆亳 亠仄亠亶于舒 PGAS: IBM X10
Mikhail Kurnosov
Scala - my path
Scala - my pathScala - my path
Scala - my path
仆舒仂仍亳亶 仂仂于
仗仂仍亰仂于舒仆亳亠 GNU OCTAVE 亟仍 亳仆亢亠仆亠仆 亳 仄舒亠仄舒亳亠从亳 舒亠仂于
仗仂仍亰仂于舒仆亳亠 GNU OCTAVE 亟仍 亳仆亢亠仆亠仆 亳 仄舒亠仄舒亳亠从亳 舒亠仂于仗仂仍亰仂于舒仆亳亠 GNU OCTAVE 亟仍 亳仆亢亠仆亠仆 亳 仄舒亠仄舒亳亠从亳 舒亠仂于
仗仂仍亰仂于舒仆亳亠 GNU OCTAVE 亟仍 亳仆亢亠仆亠仆 亳 仄舒亠仄舒亳亠从亳 舒亠仂于
丐舒仆仍亳亠仄.弍亠仍
仍亞亠弍舒亳亠从亳亠 亳仗 亟舒仆仆
仍亞亠弍舒亳亠从亳亠 亳仗 亟舒仆仆仍亞亠弍舒亳亠从亳亠 亳仗 亟舒仆仆
仍亞亠弍舒亳亠从亳亠 亳仗 亟舒仆仆
Alexander Schepanovski
仗仂亳亰于仂亟亳亠 仆从亳亳(仗仂亟仂仍亢亠仆亳亠)
仗仂亳亰于仂亟亳亠 仆从亳亳(仗仂亟仂仍亢亠仆亳亠)仗仂亳亰于仂亟亳亠 仆从亳亳(仗仂亟仂仍亢亠仆亳亠)
仗仂亳亰于仂亟亳亠 仆从亳亳(仗仂亟仂仍亢亠仆亳亠)
Mariya_Lastochkina
Swift School #4
Swift School #4Swift School #4
Swift School #4
Sergey Pronin
C# Deep Dive
C# Deep DiveC# Deep Dive
C# Deep Dive
LuxoftTraining
Scala
ScalaScala
Scala
DevDay
丱舒舒从亠仆亠 亠 仆从亳仂仆舒仍仆 磶从仂于 仗仂亞舒仄仄亳仂于舒仆亳
丱舒舒从亠仆亠 亠 仆从亳仂仆舒仍仆 磶从仂于 仗仂亞舒仄仄亳仂于舒仆亳丱舒舒从亠仆亠 亠 仆从亳仂仆舒仍仆 磶从仂于 仗仂亞舒仄仄亳仂于舒仆亳
丱舒舒从亠仆亠 亠 仆从亳仂仆舒仍仆 磶从仂于 仗仂亞舒仄仄亳仂于舒仆亳
Alex.Kolonitsky
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)
Dmitry Stropalov
Cocoheads Moscow September
Cocoheads Moscow SeptemberCocoheads Moscow September
Cocoheads Moscow September
Alexander Zimin
亳 Python 仆从亳仂仆舒仍亳仄 仗仂仄仂 弍亳弍仍亳仂亠从
亳 Python  仆从亳仂仆舒仍亳仄  仗仂仄仂 弍亳弍仍亳仂亠从亳 Python  仆从亳仂仆舒仍亳仄  仗仂仄仂 弍亳弍仍亳仂亠从
亳 Python 仆从亳仂仆舒仍亳仄 仗仂仄仂 弍亳弍仍亳仂亠从
PyNSK
舒于亠仍 舒于仍仂于 - Scala 亟仍 Java 仗仂亞舒仄仄亳仂于 (JavaDay Nsk 28.11.2013)
舒于亠仍 舒于仍仂于 - Scala 亟仍 Java 仗仂亞舒仄仄亳仂于 (JavaDay Nsk 28.11.2013)舒于亠仍 舒于仍仂于 - Scala 亟仍 Java 仗仂亞舒仄仄亳仂于 (JavaDay Nsk 28.11.2013)
舒于亠仍 舒于仍仂于 - Scala 亟仍 Java 仗仂亞舒仄仄亳仂于 (JavaDay Nsk 28.11.2013)
ScalaNsk
亠从亳 12 (舒 2): 亊亰从亳 仗仂亞舒仄仄亳仂于舒仆亳 亠仄亠亶于舒 PGAS: IBM X10
亠从亳 12 (舒 2): 亊亰从亳 仗仂亞舒仄仄亳仂于舒仆亳 亠仄亠亶于舒 PGAS: IBM X10亠从亳 12 (舒 2): 亊亰从亳 仗仂亞舒仄仄亳仂于舒仆亳 亠仄亠亶于舒 PGAS: IBM X10
亠从亳 12 (舒 2): 亊亰从亳 仗仂亞舒仄仄亳仂于舒仆亳 亠仄亠亶于舒 PGAS: IBM X10
Mikhail Kurnosov
仗仂仍亰仂于舒仆亳亠 GNU OCTAVE 亟仍 亳仆亢亠仆亠仆 亳 仄舒亠仄舒亳亠从亳 舒亠仂于
仗仂仍亰仂于舒仆亳亠 GNU OCTAVE 亟仍 亳仆亢亠仆亠仆 亳 仄舒亠仄舒亳亠从亳 舒亠仂于仗仂仍亰仂于舒仆亳亠 GNU OCTAVE 亟仍 亳仆亢亠仆亠仆 亳 仄舒亠仄舒亳亠从亳 舒亠仂于
仗仂仍亰仂于舒仆亳亠 GNU OCTAVE 亟仍 亳仆亢亠仆亠仆 亳 仄舒亠仄舒亳亠从亳 舒亠仂于
丐舒仆仍亳亠仄.弍亠仍
仍亞亠弍舒亳亠从亳亠 亳仗 亟舒仆仆
仍亞亠弍舒亳亠从亳亠 亳仗 亟舒仆仆仍亞亠弍舒亳亠从亳亠 亳仗 亟舒仆仆
仍亞亠弍舒亳亠从亳亠 亳仗 亟舒仆仆
Alexander Schepanovski
仗仂亳亰于仂亟亳亠 仆从亳亳(仗仂亟仂仍亢亠仆亳亠)
仗仂亳亰于仂亟亳亠 仆从亳亳(仗仂亟仂仍亢亠仆亳亠)仗仂亳亰于仂亟亳亠 仆从亳亳(仗仂亟仂仍亢亠仆亳亠)
仗仂亳亰于仂亟亳亠 仆从亳亳(仗仂亟仂仍亢亠仆亳亠)
Mariya_Lastochkina

Scala #3

  • 2. Function: def def foo(x: Int)(y: Int): Int = x + y foo(1)(2) //3 仍亳 仗亠亠亟 于亰仂于仂仄 仂亳 仍从舒 仆舒 仆从亳, 仗仂亳亰仂亶亟亠 亠亠 于亰仂于
  • 3. Function: apply object foo { def apply(x: Int)(y: Int): Int = { x + y } } foo(1)(2) //3 舒 舒仄仂仄 亟亠仍亠 仗亠亠亟 于亰仂于仂仄 仄仂亢亠 弍 仍ミ頴笑 于舒亢亠仆亳亠.
  • 4. Function: update 亠 亳仆舒从亳亠从亳亶 舒舒: class A { def update(x: Int, y: String) = y.length - x } val foo: A = new A foo(1) = "text" foo.update(1, "text")
  • 5. Collections: Arrays Array.empty[Int] Array.ofDim[Int](2) new Array[Int](2) Array(1, 2, 3) val a = Array.fill(1, 2)(0) a(1)(2) a.apply(1)(2) a(0).update(1, 2) a(0)(1) = 2 for (arr <- a; elem <- arr) print(elem)
  • 6. Collections: Lists List.empty[Int] List(1, 2, 3) val a = 1 :: 2 :: 3 :: Nil 1 :: a a.updated(1, 1) a ::: a
  • 7. Case classes case class A(x: Int) 于仂仄舒亳亠从亳 亟仂弍舒于仍磳 property 亟仍 仗舒舒仄亠仂于, 舒 舒从亢亠 仄亠仂亟: equals, hashCode, toString 亠仂亟 companion object: apply, unapply
  • 8. By name parameters 亠 仂亟亳仆 亳仆舒从亳亠从亳亶 舒舒: def foo(x: => Int) = { print(x) print(x) } foo(1)
  • 9. By name parameters 舒 舒仄仂仄 亟亠仍亠 仂: def foo(x: () => Int) = { print(x()) print(x()) } foo(() => 1) 仂亢仆仂 仍亳 仂弍磦仍 case class?
  • 10. Default parameters 仍 仆亠从仂仂 仗舒舒仄亠仂于 仄仂亢仆仂 仂仗亠亟亠仍亳 亟亠仂仍仆仂亠 亰仆舒亠仆亳亠: def foo(x: Int = 1, y: Int = 2) = x + y foo(1)
  • 11. Default parameters 丼仂 仗仂仍亳 亰亟亠? class C { def sum(x: Int = 1, y: Int = 2): Int = x + y } class D extends C { override def sum(y: Int = 3, x: Int = 4): Int = super.sum(x, y) } val d: D = new D val c: C = d c.sum(x = 0) d.sum(x = 0)
  • 12. Repeated parameters 仂仍亠亟仆亳亶 仗舒舒仄亠 仄仂亢亠 弍 仗仂于仂ム亳仄: def foo(x: Int, y: String*) = { x + y.length } foo(1, "a", "b") foo(1, List("a", "b"): _*)
  • 13. Repeated parameters 仍 仂于仄亠亳仄仂亳 Java: import scala.annotation.varargs def foo(x: Int, @varargs y: String*) = { x + y.length }
  • 14. Named parameters 仂亢仆仂 于亰于舒 于 仍ミ頴笑 仗仂磲从亠: def foo(x: Int, y: Int) = x + y foo(y = 1, x = 2) 仍亳 仗仂舒仆仆仂亳仂于舒 亰仆舒亠仆亳亠: def foo(isImportant: Boolean, x: Int) {} foo(isImportant = false, 2)
  • 15. Local functions 仂亢仆仂 仂弍磦仍 仆从亳亳 仍仂从舒仍仆仂: object Main { def main(args: Array[String]) { def calc() {} calc() } }
  • 16. Local functions 弌仍亢亳 仂 亟于仄 亠仍礆: 1. 弌仗亳仂从 仗舒舒仄亠仂于 弍亟亠 从仂仂亠, 舒从 从舒从 仍仂从舒仍仆舒 仆从亳 于亳亟亳 仂从亢亠仆亳亠. 2. 仂仗仂仍仆亳亠仍仆亶 仂于亠仆 亳仆从舒仗仍亳亳.
  • 17. FunctionN, apply trait Function2[-T1, -T2, +R] extends AnyRef { self => def apply(v1: T1, v2: T2): R def curried: T1 => T2 => R = { (x1: T1) => (x2: T2) => apply(x1, x2) } def tupled: Tuple2[T1, T2] => R = { case Tuple2(x1, x2) => apply(x1, x2) } override def toString() = "<function2>" }
  • 18. Functions shorthands 仂 仄仂仍舒仆亳 舒仆仂仆亳仄仆舒 仆从亳: (x: Int) => x + 1 仂 亠仍亳 亠 仂亢亳亟舒亠仄仂亠 亰仆舒亠仆亳亠: val fun: Int => Int = x => x + 1 仂亢仆仂 亰舒仗亳舒 亟舒亢亠 从仂仂亠: val fun: Int => Int = _ + 1
  • 19. Placeholder syntax 仂亢仆仂 亳仗仂仍亰仂于舒 仆亠从仂仍从仂 仗亠亠仄亠仆仆: val sum: (Int, Int) => Int = _ + _ 舒仗亳仄亠, 从舒从 仆亠从仂仍从仂 亳亰 仗舒舒仄亠仂于: def foo(x: Int, y: Int, z: Int) = x + y + z val z: (Int, Int) => Int = foo(_, y = 2, _) z(1, 2) 仍亳 仂-仂 仂于亠仄 仄亟亠仆仂亠: val x: (String, Int, Int) => String = _.substring(_, _)
  • 20. Eta-expansion 亠亠 仂亟仆舒 于仂亰仄仂亢仆仂 仆舒仗亳舒 舒仆仂仆亳仄仆 仆从亳: def inc(x: Int): Int = x + 1 val l: List[Int] = List(1, 2, 3) l.map(x => inc(x)) l.map(inc(_)) l.map(inc _) l map inc
  • 21. Partial functions 弌仗亠亳舒仍仆亶 亳仆舒从亳: val x: Int => Int = { case x => x + 1 } val y: (Int, Int) => Int = { case (x, y) => x + y } val f: PartialFunction[Any, String] = { case i: Int => i.toString }
  • 22. Pattern matching 仂亠 仍舒亳 从舒从 舒亳亠仆仆亶 switch: val x: Any x match { case 1 => case '1' => case "1" => case _ => }
  • 23. Variables patterns 舒亠仆 于 于亳亟亠 亳亟亠仆亳亳从舒仂舒 仂 仂仆仂亶 弍从于 亰舒亟舒ム 仗亠亠仄亠仆仆: "text" match { case text => case text: String => case text@name => }
  • 24. More... 仂亢仆仂 舒亳 从舒从 亞仂亟仆仂: "scala.course@gmail.com" match { case Email(name, domain) => //code case _ => }
  • 25. Unapply object Email { def unapply(s: String): Option[(String, String)] = { val parts = s split '@' if (parts.length == 2) { Some(parts(0), parts(1)) } else None } }
  • 26. Unapply def unapply(m: MatchedType): Boolean def unapply(m: MatchedType): Option[A] def unapply(m: MatchedType): Option[(A1, A2, , An)]