Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

functional programming

88 views

Published on

1. init: definition, components, history
2. begin: function (base value, higher-order function, first-class function, pure), immutable data, recursion, evaluation, type system
3. end: problems, usage, reflection, links

Published in: Software
  • Be the first to comment

  • Be the first to like this

functional programming

  1. 1. functional programming Artur Dębkowski
  2. 2. Billennium 2015 / Wszelkie prawa zastrzeżone. agenda 1. init 1. definition 2. components 3. history 2. begin 1. function 1. base value 2. higher-order function 3. first-class function 4. pure
  3. 3. Billennium 2015 / Wszelkie prawa zastrzeżone. agenda 2. begin 2. immutable data 3. recursion 4. evaluation 5. type system 3. end 1. problems 2. usage 3. reflection 4. links
  4. 4. Billennium 2015 / Wszelkie prawa zastrzeżone. init  programming paradigm  expression > statements  immutable data  function as base value
  5. 5. Billennium 2015 / Wszelkie prawa zastrzeżone. history 30’ lambda calculus 50’ IPL, Lisp 70’ Backus; ML, Scheme 90’ Haskell … F#
  6. 6. Billennium 2015 / Wszelkie prawa zastrzeżone. begin  first-class function  anonymous (lambda)  defined anywhere  closure  higher-order function  function as argument  currying (partial application)  return function  pure  no data dependency  no side effect  referential transparency
  7. 7. Billennium 2015 / Wszelkie prawa zastrzeżone. begin  immutable data  type system  type inference  untyped / typed lambda calculus  recursion  vs loop (iteration)  mathematical induction  evaluation  strict (eager)  non-strict (lazy)
  8. 8. Billennium 2015 / Wszelkie prawa zastrzeżone. end  problems  state simulation  efficiency  lazy evaluation  usage  languages  purely functional  other  when
  9. 9. Billennium 2015 / Wszelkie prawa zastrzeżone. end  reflection  clean  expressive  less bug  gaining popularity
  10. 10. Billennium 2015 / Wszelkie prawa zastrzeżone. end  Links  sicp https://mitpress.mit.edu/sicp/  coursera https://www.coursera.org/course/progfun  edx https://www.edx.org/course/introduction-functional-programming-delftx-fp101x
  11. 11. thank you for your attention Artur Dębkowski

×