About This Title

Pages: 198
Published: February 2018
ISBN: 9781680502459
Edition: 1
In Print

Skill Level Meter

Learn Functional Programming with Elixir

New Foundations for a New World

by Ulisses Almeida

Elixir’s straightforward syntax and this guided tour give you a clean, simple path to learn modern functional programming techniques. No previous functional programming experience required! This book walks you through the right concepts at the right pace, as you explore immutable values and explicit data transformation, functions, modules, recursive functions, pattern matching, high-order functions, polymorphism, and failure handling, all while avoiding side effects. Don’t board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally. This book will get you there.

eBook Formats:

  • PDF for desktop/tablets

  • epub for iBooks, e-readers

  • mobi for Kindle readers

Get all eBook formats here for $21.95

Add to Cart


Paperback Formats:

Please support indie bookstores!
Find a U.S. bookstore. Find an EU bookstore.


Functional programming offers useful techniques for building maintainable and scalable software that solves today’s difficult problems. The demand for software written in this way is increasing—you don’t want to miss out. In this book, you’ll not only learn Elixir and its features, you’ll also learn the mindset required to program functionally. Elixir’s clean syntax is excellent for exploring the critical skills of using functions and concurrency.

Start with the basic techniques of the functional way: working with immutable data, transforming data in discrete steps, and avoiding side effects. Next, take a deep look at values, expressions, functions, and modules. Then extend your programming with pattern matching and flow control with case, if, cond, and functions. Use recursive functions to create iterations. Work with data types such as lists, tuples, and maps. Improve code reusability and readability with Elixir’s most common high-order functions. Explore how to use lazy computation with streams, design your data, and take advantage of polymorphism with protocols. Combine functions and handle failures in a maintainable way using Elixir features and libraries.

Learn techniques that matter to make code that lives harmoniously with the language.

What You Need

You’ll need a computer and Elixir 1.4 or newer version installed. No previous functional programming or Elixir experience is required. Some experience with any programming language is recommended.

Resources

Releases:

  • P1.0 2018/02/02
  • B5.0 2018/02/02
  • B4.0 2017/11/11
  • B4.0 2017/10/10

Contents & Extracts

  • Introduction
    • Is This Book for You?
    • What’s in This Book?
    • Using Elixir
    • Online Resources
  • Thinking Functionally
    • Why Functional?
    • Working with Immutable Data
    • Building Programs with Functions
    • Declaring Code
    • Wrapping Up
  • Working with Variables and Functions
    • Representing Values
    • Executing Code and Generating a Result
    • Binding Values in Variables
    • Creating Anonymous Functions excerpt
    • Naming Functions
    • Wrapping Up
  • Using Pattern Matching to Control the Program Flow
    • Making Two Things Match
    • Unpacking Values from Various Data Types
    • Control Flow with Functions
    • Expanding Control with Guard Clauses
    • Elixir Control-Flow Structures
    • Wrapping Up
  • Diving into Recursion
    • Surrounded by Boundaries
    • Conquering Recursion excerpt
    • Tail-Call Optimization
    • Functions Without Borders
    • Using Recursion with Anonymous Functions
    • Wrapping Up
  • Using Higher-Order Functions
    • Creating Higher-Order Functions for Lists excerpt
    • Using the Enum Module
    • Using Comprehensions
    • Pipelining Your Functions
    • Be Lazy
    • Wrapping Up
  • Designing Your Elixir Applications
    • Starting Your Project with Mix
    • Designing Entities with Structs
    • Using Protocols to Create Polymorphic Functions
    • Creating Module Behaviours
    • Wrapping Up
  • Handling Impure Functions
    • Pure vs. Impure Functions
    • Controlling the Flow of Impure Functions
    • Trying, Rescuing, and Catching
    • Handling Impure Functions with the Error Monad
    • Using with
    • Wrapping Up
  • Adding Rooms to the Game
  • Answers to Exercises
    • Answers for Chapter 2, Working with Variables and Functions
    • Answers for Chapter 3, Using Pattern Matching to Control the Program Flow
    • Answers for Chapter 4, Diving into Recursion
    • Answers for Chapter 5, Using Higher-Order Functions

Author

Ulisses Almeida is a software consultant at Plataformatec, the company that created Elixir. He works on crafting applications, coaching beginner developers, and advising customers on best practices to build robust and maintainable systems.

eBook Formats:

  • PDF for desktop/tablets

  • epub for iBooks, e-readers

  • mobi for Kindle readers

Get all eBook formats here for $21.95

Add to Cart


Paperback Formats:

Please support indie bookstores!
Find a U.S. bookstore. Find an EU bookstore.

Related Titles:

Skill Level Meter

About This Title

Pages: 198
Published: February 2018
ISBN: 9781680502459
Edition: 1
In Print