Example Give me a list of numbers from 1 to 100. Tell me how ? Tell me what ?
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.
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
ImmutabilityBy default, values are immutable. Use keywordmutable 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 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