The document discusses functional programming concepts like immutability, higher order functions, and lazy evaluation. It provides examples of map, filter and reduce functions in Clojure and how they can be used to transform data. The document also discusses decomposing problems into smaller subproblems and combining the solutions using functional techniques. It advocates applying a functional mindset and combining functional and object-oriented approaches.
26. “When writing a modular program to solve a problem,
one first divides the problem into subproblems, then
solves the subproblems, and finally combines the
solutions. The ways in which one can divide up the
original problem depend directly on the ways in which
one can glue solutions together.”
“Why functional programming matters”
-John Hughes in Research topics in functional programming, 1990
Sunday, October 20, 13
27. “When writing a modular program to solve a problem,
one first divides the problem into subproblems, then
solves the subproblems, and finally combines the
solutions. The ways in which one can divide up the
original problem depend directly on the ways in which
one can glue solutions together.”
“Why functional programming matters”
-John Hughes in Research topics in functional programming, 1990
Sunday, October 20, 13
28. “When writing a modular program to solve a problem,
one first divides the problem into subproblems, then
solves the subproblems, and finally combines the
solutions. The ways in which one can divide up the
original problem depend directly on the ways in which
one can glue solutions together.”
“Why functional programming matters”
-John Hughes in Research topics in functional programming, 1990
Sunday, October 20, 13
29. ..argue in the remainder of this paper that functional
languages provide two new, very important kinds of
glue.
higher order function
lazy evaluation
“Why functional programming matters”
-John Hughes in Research topics in functional programming, 1990
Sunday, October 20, 13
86. decompose an algorithm into functions that are
simple, meaningful and useful.
“Tutorial on Good Lisp Programming Style”
-Peter Norvig in 1992
Sunday, October 20, 13
87. decompose an algorithm into functions that are
simple, meaningful and useful.
“Tutorial on Good Lisp Programming Style”
-Peter Norvig in 1992
Sunday, October 20, 13
110. Functional in the small, OO in the large.
“Tell Above, and Ask Below - Hybridizing OO and Functional design”
-Michael Feathers, blog post
Sunday, October 20, 13
111. Functional Core, imperative shell.
“Destroy all soft ware - episode 72”
-Gary Bernhardt, destroy on soft ware screen cast series
Sunday, October 20, 13
113. Functional Programming is more
a mindset than a particular set
of tools or languages.
“Functional Thinking”
-Neal Ford - IBM Developer Works series
Sunday, October 20, 13