Skip to main content
thoughtbot thoughtbot
  • Live on Twitch!

    thoughtbot is livestreaming

    Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

  • Case Studies
  • Blog
  • Let’s Talk
Live on Twitch!

thoughtbot is livestreaming

Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

Let’s get started!
View all Services
Development
  • Ruby on Rails
  • Hotwire
  • AI and Machine Learning
  • Maintenance
  • Mobile
Design
  • Discovery Sprints
  • UX, UI, and Product Design
  • Design Systems
Product
  • MVP
  • Product Management
  • Accessibility
Team and Processes
  • Team Augmentation
  • Fractional Leadership
View all Services
View all Resources
Development
  • Tech Leadership Resources
  • Open Source
  • Books
  • The Bike Shed Podcast
  • Live Streaming on YouTube
  • Conference Talks
The business of great software
  • Playbook
  • Purpose Built
  • Giant Robots Smashing Into Other Giant Robots Podcast
  • Design Sprint Guide
  • Live Streaming on LinkedIn
View all Resources

Functional Programming Articles

Written by thoughtbot, your expert partner for design and development.

    • All Topics
    • Design
    • Development
    • Product
    • More topics
  1. How to approach a reduce problem

    Code written with reduce can be intimidating. This 2-step approach can help.

    Joël Quenneville
    March 13, 2024
    • Web
    • Ruby
    • Functional Programming
  2. Pipelining without pipes

    Ruby, functional programming, how to build operation pipelines, and the average programming language color.

    Matheus Richard
    March 11, 2022
    • Ruby
    • Functional Programming
    • OOP
    • Refactoring
  3. Pipeline Decoders in Elm

    What’s the difference between Elm’s classical and pipeline JSON decoders?

    Joël Quenneville
    May 19, 2021
    • Elm
    • Functional Programming
    • Web
  4. Running Out of Maps

    What happens when you need a bigger mapN?

    Joël Quenneville
    May 12, 2021
    • Elm
    • Web
    • Functional Programming
  5. Simplifying Tests by Extracting Side-Effects

    Test-driven development, object-oriented design, and functional programming converge on some similar ideas.

    Joël Quenneville
    February 18, 2021
    • Web
    • Ruby
    • TDD
    • Testing
    • Functional Programming
    • Good Code
  6. Functional Programming as Algebra

    Let’s return to everyone’s “favorite” subject. 🙄

    EJ Mitchell
    January 26, 2021
    • Functional Programming
    • Mathematics
    • Learning
    • Web
    • Elm
    • Scala
  7. Testing Objects with a Functional Mindset

    Some ideas from functional programming can help us improve the unit tests for our object-oriented code.

    Joël Quenneville
    January 19, 2021
    • Web
    • Functional Programming
    • Testing
    • Good Code
    • Ruby
  8. Understanding Elm's Type Mismatch Error

    Breaking down Elm’s Type Mismatch error in basic and complex cases.

    Hawley Brett
    July 20, 2020
    • Elm
    • Functional Programming
    • Debugging
  9. Gotta Catch an Elm

    Using the PokeApi to learn a new language.

    EJ Mitchell
    July 13, 2020
    • Elm
    • Functional Programming
    • Learning
  10. Better domain modeling in Elixir with sum types

    Sum types are a powerful domain modeling technique. Let’s look at how to use them to remove invalid states.

    German Velasco
    July 26, 2019
    • Elixir
    • Functional Programming
    • Types
    • Good Code
  11. Sign up to receive a weekly recap from thoughtbot

    Looking for even more ways to stay connected?
    RSS feed icon Check out our feeds
1 2 3 Next › Last »

Footer

thoughtbot
  • Services
  • Case Studies
  • Resources
  • Let's Talk
  • Our Company
  • Careers
  • Purpose
  • Blog
  • Sponsor
  • Mastodon
  • Bluesky
  • GitHub
  • YouTube
  • Twitch
  • Feeds
© 2025 thoughtbot, inc.

The design of a robot and thoughtbot are registered trademarks of thoughtbot, inc.

  • US: +1 (877) 9-ROBOTS
  • UK: +44 (0)20 3807 0560
  • Beware of fraudulent thoughtbot job listings Learn more
  • Code of Conduct
  • Accessibility Statement
  • Privacy Policy