×
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
Por que Por que functional programming functional programming é mais rápido? é mais rápido?
Slide 2
Slide 2 text
Irio Musskopf Um-dia-quem-sabe-formado Matemático Trabalhando pra Neighborly(.com)
Slide 3
Slide 3 text
(Re)vendo conceitos (Re)vendo conceitos
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
100 103,5
Slide 6
Slide 6 text
(10, 42) 105
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
∠A + ∠B + ∠C = 180˚, ∀ ΔABC
Slide 9
Slide 9 text
Moses Schönfinkel 1889 - 1942 Haskell Curry 1900 - 1982 Alonzo Church 1903 - 1995 Cálculo Cálculo λ λ
Slide 10
Slide 10 text
> let grossAmount price = price * 1.03 > grossAmount 100 103.0 > grossAmount 100 103.0 -- $ ghci
Slide 11
Slide 11 text
rand (http://goo.gl/0BaCQp) IO Exceções Exceções
Slide 12
Slide 12 text
Immutability -> memoization
Slide 13
Slide 13 text
> let investments = [1000, 500] > let investmentsCount = length(investments) > let amount = sum(investments) > let average = amount / investmentsCount > print average 750.0 -- $ ghci
Slide 14
Slide 14 text
Immutability -> memoization Lazy evaluation
Slide 15
Slide 15 text
> insert(a_collection, 42) > remove(a_collection, 42) -- $ ghci
Slide 16
Slide 16 text
> insert(a_collection, 42) >>= remove(a_collection, 42) -- $ ghci
Slide 17
Slide 17 text
Immutability -> memoization Lazy evaluation Monads
Slide 18
Slide 18 text
> let multiplyAndSum x y = (x + x + x + x) + (y + y + y + y) -- $ ghci
Slide 19
Slide 19 text
> let multiplyAndSum x y = (x + x + x + x) + (y + y + y + y) > let multiplyAndSum x y = 4 * x + 4 * y -- $ ghci
Slide 20
Slide 20 text
> let multiplyAndSum x y = (x + x + x + x) + (y + y + y + y) > let multiplyAndSum x y = 4 * x + 4 * y > let multiplyAndSum x y = 4 * (x + y) -- $ ghci
Slide 21
Slide 21 text
Immutability -> memoization Lazy evaluation Monads Compile-time optimizations
Slide 22
Slide 22 text
scala> Stream.from(1). filter(_ < 100). map(_ + 1). take(2). toList // $ sbt console > take 2 $ map (+1) $ filter (<100) [1..] -- $ ghci tudoaomesmotempoagora tudoaomesmotempoagora
Slide 23
Slide 23 text
Não será mais rápido que procedural às vezes será
Slide 24
Slide 24 text
MapReduce
Slide 25
Slide 25 text
Obrigado! Obrigado! @irio
[email protected]