SlideShare a Scribd company logo
Functional
Programming
Jargon
A DublinJS lighting talk by Remo H. Jansen
The functional programming jargon is “scary”!
● Function arity
● Pure functions
● Referential transparency
● Side effects
● Partial application
● Currying
● Function Composition
● Lazy evaluation
Fear not my friends!
● Encapsulation
● Class
● Property
● Method
● Object
● Inheritance
● Polymorphism
Do you remember how you felt the first time you encountered the Object-oriented jargon?
Pure Functions
Purity (AKA referential transparency) means “every time you pass the same inputs, you
always get the same outputs”.
A pure function is free of side effects. A side effect refers simply to
the modification of some kind of state.
Any operation which modifies the state of the computer or which
interacts with the outside world is said to have a side effect.
Immutability
An immutable object is an object whose state cannot be modified after it is created. In JavaScript
objects are not immutable and our pure functions should avoid mutating its arguments (side
effect). We can achieve this by using a library like immutable.js and avoiding the JavaScript
mutator methods!
Function Partial Application
Partial application is the process of fixing a number of arguments to a function, producing
another function of smaller arity.
Arity refers to the number of arguments a function can accept. This
might be none, one (unary), two (binary) or more (polyadic). You
can also have functions that take a variable number of arguments,
(variadic functions).
Currying
Currying is the process of taking a function that accepts N arguments and turning it into a
chained series of N functions each taking 1 argument.
Function Composition
The act or mechanism of combining simple functions to build more complicated ones.
Unary functions are easier to compose. Currying helps us to perform function composition.
Functional programming manages complexity via composition as opposed to data encapsulation.
How to learn more?
Books:
● Functional Programming in JavaScript by Dan Mantyla
● Functional Programming in JavaScript by Luis Atencio
● Reactive Programming with RxJS by Sergi Mansilla
Libraries:
● React & Redux
● Ramda
● RxJS
● Immutable
● Cycle
Questions?
Thanks!

More Related Content

PDF
Redux Saga - Under the hood
PDF
JSAnkara Swift v React Native
PDF
React.js+Redux Workshops
PDF
How to Redux
PPTX
Introduction to RxJava on Android
PDF
Redux and context api with react native app introduction, use cases, implemen...
PDF
React Native +Redux + ES6 (Updated)
PDF
Why should a Java programmer shifts towards Functional Programming Paradigm
Redux Saga - Under the hood
JSAnkara Swift v React Native
React.js+Redux Workshops
How to Redux
Introduction to RxJava on Android
Redux and context api with react native app introduction, use cases, implemen...
React Native +Redux + ES6 (Updated)
Why should a Java programmer shifts towards Functional Programming Paradigm

What's hot (20)

PDF
Callback Function
PPTX
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
PDF
Intro to React
PDF
Introduction to ReactJS
PPTX
Exploring Kotlin language basics for Android App development
PDF
Angular & RXJS: examples and use cases
PPTX
Angular 1.x vs 2 - In code level
PDF
WilmingtonJS - React Native Under the Hood
PPTX
React learning in the hard way
PDF
Thinking Functionally
PDF
Workshop React.js
PDF
React App State Management with react hooks and context api
PPT
Starting with Reactjs
PDF
Presentation react
PPTX
JavaScript (without DOM)
PDF
Xtend - better java with -less- noise
PDF
Clean Architecture
PPTX
Say Hello to React day2 presentation
PDF
Real Life Clean Architecture
PDF
JavaScript, qué hermoso eres
Callback Function
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
Intro to React
Introduction to ReactJS
Exploring Kotlin language basics for Android App development
Angular & RXJS: examples and use cases
Angular 1.x vs 2 - In code level
WilmingtonJS - React Native Under the Hood
React learning in the hard way
Thinking Functionally
Workshop React.js
React App State Management with react hooks and context api
Starting with Reactjs
Presentation react
JavaScript (without DOM)
Xtend - better java with -less- noise
Clean Architecture
Say Hello to React day2 presentation
Real Life Clean Architecture
JavaScript, qué hermoso eres
Ad

Similar to Functional programing jargon (20)

PPTX
Основы функционального JS
PDF
Functional programming 101
PDF
Functional JavaScript Fundamentals
PDF
introtofunctionalprogramming2-170301075633.pdf
PDF
Introduction to Functional Programming (w/ JS)
PDF
Intro to functional programming
PPTX
WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD?
PDF
Intro to functional programming
PPTX
Why Functional Programming So Hard?
PDF
Functional Programming in JavaScript
PDF
Functional Programming with Javascript
PDF
379008-rc217-functionalprogramming
PDF
Functional Programming with JavaScript
PPTX
Things about Functional JavaScript
PPTX
Functional Programming in Javascript - IL Tech Talks week
ODP
Functional programming
PPTX
Functional programming in javascript
PPTX
Functional Programming in Swift
PPTX
When life gives you functions make functional programs!
PDF
Predictable reactive state management - ngrx
Основы функционального JS
Functional programming 101
Functional JavaScript Fundamentals
introtofunctionalprogramming2-170301075633.pdf
Introduction to Functional Programming (w/ JS)
Intro to functional programming
WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD?
Intro to functional programming
Why Functional Programming So Hard?
Functional Programming in JavaScript
Functional Programming with Javascript
379008-rc217-functionalprogramming
Functional Programming with JavaScript
Things about Functional JavaScript
Functional Programming in Javascript - IL Tech Talks week
Functional programming
Functional programming in javascript
Functional Programming in Swift
When life gives you functions make functional programs!
Predictable reactive state management - ngrx
Ad

Recently uploaded (20)

PPTX
Essential Infomation Tech presentation.pptx
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Transform Your Business with a Software ERP System
PDF
AI in Product Development-omnex systems
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
history of c programming in notes for students .pptx
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
System and Network Administration Chapter 2
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
System and Network Administraation Chapter 3
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Essential Infomation Tech presentation.pptx
Adobe Illustrator 28.6 Crack My Vision of Vector Design
How to Choose the Right IT Partner for Your Business in Malaysia
Transform Your Business with a Software ERP System
AI in Product Development-omnex systems
VVF-Customer-Presentation2025-Ver1.9.pptx
history of c programming in notes for students .pptx
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
System and Network Administration Chapter 2
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
top salesforce developer skills in 2025.pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
System and Network Administraation Chapter 3
Understanding Forklifts - TECH EHS Solution
Operating system designcfffgfgggggggvggggggggg
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)

Functional programing jargon

  • 2. The functional programming jargon is “scary”! ● Function arity ● Pure functions ● Referential transparency ● Side effects ● Partial application ● Currying ● Function Composition ● Lazy evaluation
  • 3. Fear not my friends! ● Encapsulation ● Class ● Property ● Method ● Object ● Inheritance ● Polymorphism Do you remember how you felt the first time you encountered the Object-oriented jargon?
  • 4. Pure Functions Purity (AKA referential transparency) means “every time you pass the same inputs, you always get the same outputs”. A pure function is free of side effects. A side effect refers simply to the modification of some kind of state. Any operation which modifies the state of the computer or which interacts with the outside world is said to have a side effect.
  • 5. Immutability An immutable object is an object whose state cannot be modified after it is created. In JavaScript objects are not immutable and our pure functions should avoid mutating its arguments (side effect). We can achieve this by using a library like immutable.js and avoiding the JavaScript mutator methods!
  • 6. Function Partial Application Partial application is the process of fixing a number of arguments to a function, producing another function of smaller arity. Arity refers to the number of arguments a function can accept. This might be none, one (unary), two (binary) or more (polyadic). You can also have functions that take a variable number of arguments, (variadic functions).
  • 7. Currying Currying is the process of taking a function that accepts N arguments and turning it into a chained series of N functions each taking 1 argument.
  • 8. Function Composition The act or mechanism of combining simple functions to build more complicated ones. Unary functions are easier to compose. Currying helps us to perform function composition. Functional programming manages complexity via composition as opposed to data encapsulation.
  • 9. How to learn more? Books: ● Functional Programming in JavaScript by Dan Mantyla ● Functional Programming in JavaScript by Luis Atencio ● Reactive Programming with RxJS by Sergi Mansilla Libraries: ● React & Redux ● Ramda ● RxJS ● Immutable ● Cycle

Editor's Notes

  • #2: The goals of this talk: If you already know FP you will find it too basic :( If it is the first time that you hear about FP I would like you to feel curious about it by the end of this talk. If you think that FP is too hard I would like you to feel less scared by it by the end of this talk.
  • #3: It is hard because there are a lot of new terms and it is a different way of thinking.
  • #4: OOP once also was a different way of thinking and had a lot of terms and today you know it well :)