IntelliFactory / F# Programming I
Please RSVP for instructions on how to join the event.
Description
This course covers the basics of F# and functional programming.
What you will learn
- What is F# and why it matters.
- How F# increases productivity.
- How F# catches more bugs at compile time.
- How to do general purpose programing in F#.
- How to leverage the best of F#'s paradigms:
- functional
- object oriented
- imperative
- event driven
- How to rapidly prototype in F#.
Outline
- F#'s predecessors
- λ-calculus
- LISP
- ML
- Caml
- OCaml
- λ-calculus
- Immutability
- Lazy
- Currying
- Higher-order functions
- Static Typing
- Static vs. dynamic typing
- Compile time vs. run time
- Visual Studio
- Creating an F# project
- Building
- Referencing DLLs
- FSI
- Types
- It's not just results that are typed
- It also matters "how you got there"
- The following integer types are different:
- int
- int -> int -> int
- (int * int) -> int
- Tuples
- 1st class argument lists
- Multiple return values
- Product types
- Type inference
- Annotations
- Overloading
- Ad hoc polymorphism
- Same name
- Different algorithms for different types
- Generics
- Parametric polymorphism
- Same algorithm for different types
- Parametric polymorphism
- Discriminated unions
- Type option
- Unions vs. inheritance
- Pattern matching
- Destructuring bind
- Subsumes if
- Records
- Named elements
- Lightweight OOP system
- Type augmentations
- Records + unions vs. inheritance
- Immutability
- Definition of functional
- SSA
- Thread safe
- Mutation
- Opt in
- Immutability is the default
- Definition of functional
- Functional Programming
- Values
- No, everything is not an object
- Everything is a value
- 1st class citizens
- All citizens can participate equally in all activities sanctioned by the language
- Higher-order functions
- Closures
- Recursion
- Values
- Recursion
- Tail vs. non-tail
- Trees
- Continuations
- Can use recursion for everything
- Library functions
- encapsulate functional idioms
- more declarative
- highly optimized
- Tail vs. non-tail
- Lists
- Cons
- Append
- Pattern matching
- Recursion
- Easy conversion to other data types
- To array
- Composition
- Partial application
- Piping
- let (|>) x f = f x
- <<
- >>
- Mutation
- Via annotation
- Can't escape scope
- Reference cells
- Can improve performance
- Some data structures are imperative
- arrays
- Via annotation
- Packaging
- Modules
- Allow values
- Namespaces
- Only types
- Neither works in FSI
- Modules
- Exceptions
- Errors
- Can be encoded in unions
- Rather than thrown
- Tools:
- try.with
- finally
- using
- Debugging
- Errors
- Library Functions
- Common functional idioms
- Map
- Fold
- Etc.
- Common functional idioms
- Seq
- IEnumeration
- Demand driven
- Not memoized
- LINQ
- Classes
- Can be immutable
- .Net compatible
- Casting
- Up
- Down
- Flexible types
Upcoming events
No events
You must be logged in to book an onsite training.
Please use the login link on the top right.
Course tags
- f# × 13
- functional × 4
- erlang × 3
- http × 2
- introduction × 2
- web × 2
- websharper × 2
- agents × 1
- asp.net × 1
- asp.net mvc × 1
- async × 1
- beginners,, × 1
- c# × 1
- clojure × 1
- concurrent × 1
- distributed programming × 1
- erlang express × 1
- erlang for beginners × 1
- erlang, × 1
- ets × 1
- for, × 1
- haskell × 1
- linq × 1
- ocaml × 1
- otp × 1
- otp, × 1
- pit fw × 1
- scala × 1
- servicestack × 1
- silverlight × 1
- single page application × 1
- web api × 1
- workflows × 1
Featured Courses
Learning F# - Basics
Get started with F# quickly and effectively.F# Programming I
Part I of a comprehensive 3-part introduction to the F# programming language.F# Programming II
Part II of a comprehensive 3-part introduction to the F# programming language.F# Programming III
Part III of a comprehensive 3-part introduction to the F# programming language.Understanding Functional Programming
Master functional programming concepts that jumpstart your productivity.Introduction to WebSharper
Learn how to use WebSharper for real-life web applications.
Copyright (c) 2011-2012 IntelliFactory. All rights reserved. Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy |
Built with WebSharper |