Thursday, March 13, 2014

functional programming

http://en.wikipedia.org/wiki/Comparison_of_programming_paradigms
http://en.wikipedia.org/wiki/Functional_programming
http://www.iis.sinica.edu.tw/~scm/ncs/2009/06/on-functional-programming/
http://xcycl.wordpress.com/2010/03/28/%E7%82%BA%E7%94%9A%E9%BA%BC%E6%98%AF-functional-programming%EF%BC%9F/
http://c2.com/cgi/wiki?FunctionalProgramming
http://www.codedata.com.tw/java/functional-programming-for-java-developers-1-a-preliminary-study/

Erlang, Haskell, Lisp, Clojure, Scala, F#


  • First-class and higher-order functions
  • Pure functions
  • Recursion
  • Strict versus non-strict evaluation
  • Type systems
  • Functional programming in non-functional languages


Higher-order functions are closely related to first-class functions in that higher-order functions and first-class functions both allow functions as arguments and results of other functions. The distinction between the two is subtle: "higher-order" describes a mathematical concept of functions that operate on other functions, while "first-class" is a computer science term that describes programming language entities that have no restriction on their use (thus first-class functions can appear anywhere in the program that other first-class entities like numbers can, including as arguments to other functions and as their return values).

Functional programming is very different from imperative programming. The most significant differences stem from the fact that functional programming avoids side effects, which are used in imperative programming to implement state and I/O. Pure functional programming completely prevents side-effects and provides referential transparency, which makes it easier to verify, optimize, and parallelize programs, and easier to write automated tools to perform those tasks.



No comments:

Related Posts Plugin for WordPress, Blogger...