KEMBAR78
Functional programming f# | PPTX
Functional Programming
          - Introducing F#



                     06/15/2012
Example
 Give me a list of numbers from 1 to 100.




    Tell me how ?             Tell me what ?
What?
Functional programming is a programming paradigm
that treats computation as the evaluation of
mathematical functions and avoids state and mutable
data.


                      y = f (x)
A function is a transformation. It transforms one or more inputs into exactly
one output.
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
  …
How?

 Immutability
 Type Inference
 Recursion
 High Order Functions
 Partial Application
 Pattern Matching
 Unit of Measure
Immutability
By default, values are immutable. Use keyword
mutable to mark it as mutable.
Type Inference
 F# can deduce data types automatically.
 Type annotation is necessary in certain case.
Recursion
• Functional programming prefers recursion to
  imperative for-each loops.

• Prefer tail recursion to avoid stack overflow
High order Function
 Functions in F#
High order Function
 Functions as First Class Member
 Functions that accept a function as a parameter or
 returns a function
High Order Function

 Map
 Fold
 Zip
 Filter
 Pipeline
 Function Composition
 Partial Application
Pattern Match
 Compare data with a logical structure
 Decompose data into its constituent parts
 Extract information from constructs in various
 ways
Unit of Measure
 Floating point and signed integer values in F# can
  have associated units of measure.
 Compile time checking.
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
   …
Resources
 The F# Survival Guide
 Functional Programming for the Real World
Functional programming   f#

Functional programming f#

  • 1.
    Functional Programming - Introducing F# 06/15/2012
  • 2.
    Example  Give mea list of numbers from 1 to 100. Tell me how ? Tell me what ?
  • 3.
    What? Functional programming isa programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. y = f (x) A function is a transformation. It transforms one or more inputs into exactly one 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  TypeInference  Recursion  High Order Functions  Partial Application  Pattern Matching  Unit of Measure
  • 6.
    Immutability By default, valuesare immutable. Use keyword mutable to mark it as mutable.
  • 7.
    Type Inference  F#can deduce data types automatically.  Type annotation is necessary in certain case.
  • 8.
    Recursion • Functional programmingprefers 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  Comparedata 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 inReal 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