Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS AWS Certified Developer - Associate CompTIA Security+
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Mindfulness Personal Development Personal Transformation Meditation Life Purpose Coaching Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee

This course includes:

  • 1.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
Development Software Engineering C++

Functional Programming using C++

Write more robust and easier to maintain C++ code than ever before.
Rating: 4.4 out of 54.4 (288 ratings)
1,920 students
Created by Tobias Hermann
Last updated 3/2018
English
English [Auto], Polish [Auto], 
30-Day Money-Back Guarantee

What you'll learn

  • You will be able to write code that is easy to understand and almost self-documenting.
  • You will be familiar with the background of functional programming and understand the fundamental differences of functional solutions compared to imperative ones.
  • You will be able to solve programming problems elegantly by composing functional tools only or mixing them with other paradigms.
  • You will spend much less time debugging your real-world applications because of their increased run-time safety.
  • You will be able to utilize multiple CPUs to improve the performance of your applications.
  • Your understanding of functional programming will help in other languages than C++ too. And it will expand your horizon regarding software engineering in general.
Curated for the Udemy for Business collection

Course content

4 sections • 27 lectures • 1h 35m total length

  • Preview08:22
  • Introducing functional programming
    5 questions
  • Preview08:35
  • Type annotations
    05:25
  • Type annotations
    3 questions
  • Advantages of certain restrictions
    01:51

  • Programming challenge: Parse and product
    02:43
  • Lambdas and closures
    02:43
  • Lambdas and closures
    2 questions
  • Programming challenge: Longest edge of polygon
    02:47
  • The problem with comments
    02:33
  • High-level expressiveness and concise code
    01:21
  • Currying and partial function application
    03:30
  • Forward application
    02:23
  • Programming challenge: An SQL analogy
    01:13
  • Function composition
    02:57
  • Programming challenge: Interacting with the command line
    03:23

  • Structuring your project cleanly
    01:23
  • Memoization
    02:22
  • Monoids
    04:20
  • Error handling
    04:16
  • Functors
    03:01
  • Monads
    08:59

  • Refactoring
    03:31
  • Testing
    01:07
  • Performance and profiling
    05:15
  • Multithreading
    03:50
  • OOP Design patterns vanishing
    04:39
  • Libraries
    01:44
  • Outlook and conclusion
    01:01

Requirements

  • You should have some experience in programming with C++.
  • Previous experience with functional programming is not necessary.
  • A C++14-compatible compiler is needed.

Description

Controlling complexity is one of the biggest challenges a developer faces. Functional programming helps tremendously with this and thus becomes more and more popular, even in originally imperative and object oriented languages like C++. This course will help you increase your productivity by teaching how to write functional C++ code that is easy to understand, test and reuse.

After mastering the basic building blocks of functional programming, you will learn how to think functionally and solve everyday programming problems in an elegant way. Every provided coding exercises comes with an exemplary solution.

At the end of this course you will be able to use the functional approach to write application code that is extraordinarily robust and pleasant to work with.

And as a bonus, all the concepts you have learned will not only help you when using C++, but are applicable to other programming languages too and will expand your horizon regarding programming in general.

Who this course is for:

  • This course is for all C++ developers (intermediate and advanced) who want to improve the quality of the C++ code they produce by learning about and applying functional programming principles.

Instructor

Tobias Hermann
Software engineer working in computer vision
Tobias Hermann
  • 4.4 Instructor Rating
  • 288 Reviews
  • 1,920 Students
  • 1 Course

Tobias Hermann is using functional programming in C++ on a daily basis in professional and private projects. He is the main developer of FunctionalPlus, a publicly available C++ library facilitating functional programming in C++. He currently works in the computer vision industry where he develops high performance image recognition software in C++. His experience in teaching the functional programming paradigm face to face and in articles enables him to help you develop the skills needed to become productive with this approach.

Other interests of him include deep learning, game development and different programming languages like Rust, Python, Haskell and Elm.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.