Oreilly - Introduction to Functional Programming
by Barry Burd | Released November 2016 | ISBN: 9781491962749
This video's accompanying exercises and solutions can be found here.Functional programming has become an integral part of every professional developer's toolkit. Designed for the basic user of Java, C++, Python, JavaScript, or any other popular programming language, this course explains the principles and methods underlying the functional approach. By the end of this course, you'll be able to think about problems from a functional point of view, making it possible for you to program with pure functions and transform procedural solutions to problems into functional solutions. Explore the principles and methods underlying the functional approach to programming Recognize the distinctions between functional, imperative, and procedural programming Learn to program with pure functions and how they benefit testing, debugging, and memoization Discover the three most important must-have functions: Filter, map, and fold Learn about higher-order functions, lists, recursion, and monads Master the ability to transform a procedural solution to a problem into a functional solutionBarry Burd is a professor of Computer Science and Mathematics at Drew University in New Jersey where he's been explaining programming concepts since 1980. He has a Ph.D. in Mathematics from the University of Illinois and is the author of nine software-centric "Dummies" books including Java For Dummies, Android Application Development All-in-One For Dummies, and more. Show and hide more Publisher resources Download Example Code
- Introduction
- About this Course 00:05:17
- Part 1: Getting Started with Functional Programming
- Solving a Problem Both Ways 00:09:22
- Using Filter, Map, and Fold 00:24:35
- Imperative and Functional Programming Languages 00:14:21
- Part 2: Functions
- Pure Functions 00:22:14
- Some Benefits of Pure Functions: Testing, Debugging, and Memoization 00:15:38
- Avoiding Race Conditions and Achieving Thread Safety 00:10:31
- Efficient Parameter Passing 00:09:15
- Lazy Evaluation 00:15:26
- Part 3: Higher-Order Functions
- Introduction to Higher-Order Functions 00:11:53
- Currying 00:20:51
- Closures 00:12:52
- Part 4: Lists and Recursion
- Introduction to Lists 00:07:45
- Recursion 00:12:00
- More Recursion Examples 00:21:13
- Part 5: Monads
- Computations that Might Fail 00:27:53
- More Monads 00:19:58
Show and hide more