Data-First Online Functional Programming with F# (Adam Granicz)
Functional programming f#
-
Upload
douyutao -
Category
Technology
-
view
399 -
download
2
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