YOW WEST 2014: "Adopting Functional Programming Languages"
Post on 21-Jan-2018
26 Views
Preview:
Transcript
1
LANGUAGES
ADOPTINGPROGRAMMINGFUNCTIONAL
Andy Marks @andee_marks amarks@thoughtworks.com
ADOPTING FUNCTIONAL
PROGRAMMING LANGUAGES
(reduce + (map #(/ 1.0 % %) (range 1 1001)))
lists:sum([1/math:pow(X,2) || X <- lists:seq(1,1000)]).
sum [1 / x ^ 2 | x <- [1..1000]]
1 to 1000 map (x => 1.0 / (x * x)) sum
let rec sum n = if n < 1 then 0.0 else sum (n-1) +. 1.0 /. float (n*n) in sum 1000
!
Computation via functional evaluation Higher order functions
Immutability
Source: http://rosettacode.org/wiki/Sum_of_a_series
1996 2013
4
LANGUAGES
ADOPTINGPROGRAMMINGFUNCTIONAL
10 BUTSA TALE OF
BUT… IT’S JUST FOR ACADEMICS
#1
5
6
+ FP =
+ FP =
+ FP =
BUT… NO ONE ELSE IS USING THEM
#2
7
8
BUT… THEY’RE JUST THE SHINY NEW TOY
#3
9
10
BUT… THEY’RE TOO NICHE FOR GENERAL USE
#4
11
12
HTTP ✅
Test automation ✅
Database IO ✅
Build automation ✅
etc ✅
BUT… I DON’T “GET” MONADS
#5
13
14
BUT… I’M ADDICTED TO MUTABLE STATE
#6
15
16
BUT… I ALREADY HAVE CLOSURES IN C#.
#7
17
18
BUT… THE TOOLS ARE TOO IMMATURE
#8
19
20
BUT… THERE ARE NO DEVELOPERS WHO KNOW SCALA
#9
21
22
BUT… I DON’T WANT TO LEARN ANOTHER SYNTAX
#10
23
24
CONCLUSION
Distribution + concurrency Data + data analysis Lower barrier to entry Hybrid languages
25
26
LANGUAGES
ADOPTINGPROGRAMMINGFUNCTIONAL
Andy Marks @andee_marks amarks@thoughtworks.com
THANKS!
top related