Functional programming f#

Click here to load reader

download Functional programming   f#

of 16

description

Introducing functional programming basic concepts via F#.

Transcript of Functional programming f#

  • 1. Functional Programming - Introducing F# 06/15/2012
  • 2. Example Give me a list of numbers from 1 to 100. Tell me how ? Tell me what ?
  • 3. What?Functional programming is a programming paradigmthat treats computation as the evaluation ofmathematical functions and avoids state and mutabledata. y = f (x)A function is a transformation. It transforms one or more inputs into exactlyone output.
  • 4. Why? Succinct & simpler programs Small code base, low dev/maintenance cost. A number of powerful new ways to structure and reason about programs. Immutability High order function Pattern Matching
  • 5. How? Immutability Type Inference Recursion High Order Functions Partial Application Pattern Matching Unit of Measure
  • 6. ImmutabilityBy default, values are immutable. Use keywordmutable to mark it as mutable.
  • 7. Type Inference F# can deduce data types automatically. Type annotation is necessary in certain case.
  • 8. Recursion Functional programming prefers recursion to imperative for-each loops. Prefer tail recursion to avoid stack overflow
  • 9. High order Function Functions in F#
  • 10. High order Function Functions as First Class Member Functions that accept a function as a parameter or returns a function
  • 11. High Order Function Map Fold Zip Filter Pipeline Function Composition Partial Application
  • 12. Pattern Match Compare data with a logical structure Decompose data into its constituent parts Extract information from constructs in various ways
  • 13. Unit of Measure Floating point and signed integer values in F# can have associated units of measure. Compile time checking.
  • 14. Functional Programming in Real World Erlang developed in Ericsson widely used in T- Mobile, Facebook.... Industry Communication Finance industry Scientific computation AI Languages support FP Haskell Scala Python Clojure
  • 15. Resources The F# Survival Guide Functional Programming for the Real World