Description
In this course, you will :
- Functional programming is introduced with illustrative examples that contrast with the more widely used imperative programming paradigm.
- Examine lambda calculus as an introduction to expressions, which serve as the foundation of functional programmes. You'll progress through abstractions and complex data types before diving into common computation patterns.
- Discover how dataflows can generate entire programmes from existing functions.
- Finally, put your functional programming knowledge to use in a variety of real-world scenarios. You'll learn OCaml and Haskell at each stage, while contrasting imperative programming with Java.
- By the end of this course, you will be ready to use functional programming in your daily work and will have the framework to know when to use imperative or functional paradigms.
Syllabus :
1. Expressions: Building Blocks of Functional Programs
- Functional Programming is All About Expressions
- Syntax of Expressions
- Parsing ExpressionsTypes of Expressions
- Values of Expressions
- Assign Names to ExpressionsProgramming Challenges
2. Building Abstractions with Functions
- Lambda Calculus: The Foundation of Functional Programming
- Function Abstraction and Function Application
- Use Currying for Function Chaining
- Recursive Functions
- General Computation Methods as Higher-Order Functions
- Programming Challenges
3. Compound Data Types
- Group Data Objects into Tuples
- Store Sequences of Data with Lists
- Declare User-defined Types with Algebraic Datatypes
- Programming Challenges
4. Common Computation Patterns
- The map Function
- The filter Function
- The fold Function
- The zip Function
- Programming Challenges
5. Dataflow Programming with Functions
- List-based Dataflow Programming
- Stream-based Dataflow Programming
- Programming Challenges
6. Applying Functional Programming to Various Domains
- Handle Collections in Data Processing Applications
- Handling JSON