SlideShare a Scribd company logo
1 of 70
Download to read offline
– https://en.wikipedia.org/wiki/Kleisli_category
“In category theory, a Kleisli category is
a category naturally associated to any monad T. It is
equivalent to the category of free T-algebras. The Kleisli
category is one of two extremal solutions to the
question ‘Does every monad arise from an adjunction?’”
– https://en.wikipedia.org/wiki/Kleisli_category
“In category theory, a Kleisli category is
a category naturally associated to any monad T. It is
equivalent to the category of free T-algebras. The Kleisli
category is one of two extremal solutions to the
question ‘Does every monad arise from an adjunction?’”
Practical Functional
Programming In JavaScript
Ian Thomas (@anatomic) | December 2017
–Paul Graham
“Object-oriented programming offers a sustainable way
to write spaghetti code. It lets you accrete programs as
a series of patches.”
Why JS? ?
-Crockford’s Law (aka The Monadic Curse)
“The Monadic Curse is that once
someone learns what Monads are
and how to use them, they lose
the ability to explain them to
other people”
Why Functional
Programming?
–Edsger Dijkstra
“Program testing can be a very effective way to show
the presence of bugs, but is hopelessly inadequate for
showing their absence.”
–Simon Peyton Jones
“The most depressing thing about life as a programmer, I
think, is if you’re faced with a chunk of code that either
someone else wrote or, worse still, you wrote yourself
but no longer dare to modify. That’s depressing.”
What is a function?
A function relates each element of a set
with exactly one element of another set
(possibly the same set).
What is a higher-order
function?
A higher-order function is a function which operates
on another functions, either by taking them as
arguments or returning them
Some principals of
functional programming
Purity
Purity
or, perhaps, why should we avoid impurity?
A pure function is a function that, given the same input,
will always return the same output and does not have
any observable side effect.
How many tests would you require to adequately check this function?
Would it be more than 6?
Immutability
Immutability goes hand in hand with purity. Returning
copies of data and not manipulating global state means
you can guarantee certain properties and rules will
always hold in your programs.
Composition
–Ellen Ullman
“We build our computer (systems) the way we build our
cities: over time, without a plan, on top of ruins.”
Imagine if you could just build your application by putting
together well tested, easily understood pieces of code in a
declarative manner. Just like building with lego blocks,
composition of pure functions unlocks this ability.
https://drboolean.gitbooks.io/mostly-adequate-guide/ch5.html#category-theory
Currying
Currying is the process of converting a function that
takes multiple arguments into a function that can
take them one at a time
Pointfree Style
“Pointfree is a good litmus test for functional code as it lets us know we've got
small functions that take input to output. One can't compose a while loop, for
instance. Be warned, however, pointfree is a double-edged sword and can
sometimes obfuscate intention. Not all functional code is pointfree and that is
O.K. We'll shoot for it where we can and stick with normal functions otherwise.”
–Professor Frisby’s Mostly Adequate Guide To Functional Programming
Algebraic Data Types
Algebraic Data Types
–Greg Nelson
“To keep large programs well structured, you either
need superhuman will power, or proper language
support for interfaces.”
https://github.com/fantasyland/fantasy-land
https://github.com/fantasyland/fantasy-land
https://github.com/fantasyland/fantasy-land
https://github.com/fantasyland/fantasy-land
Better known as….
Array (Functor)
Maybe (Monad)
Either (Monad)
Task/Future (Monad)
Reader (Monad)
State (Monad)
Product (Monoid)
Sum (Monoid)
First (Monoid)
Any (Monoid)
All (Monoid)
Max (Monoid)
Min (Monoid)
Etc.
While the mathematical descriptions and terminology
will ultimately prove useful, in many cases knowing
some basic laws is enough.
Identity
u.map(x => x) === u
Associativity
a.concat(b.concat(c)) === a.concat(b).concat(c)
Composition
u.map(x => f(g(x))) === u.map(g).map(f)
Stuff I haven’t
covered…
Stuff I haven’t
covered…
Transducers
Observables
Lenses
Foldable
Referential Transparency
Applicative
Traversable Isomorphism
Property based testing
Practical Example 1
Creating a pure http client
Wrap a promise based API using a Future
Use Reader to create an API which can ask for config
Use Reader pattern to create an API which can ask for config
Compose our application run with config
Practical Example 2
Generating RequestABet™ Recommendations
Customer selects bets
Request is sent to traders
Nearest matches are calculated
Top 4 recommendations shown
Given this as an API Response
Encapsulate business logic in pure functions
Separate out state based operations
Compose functionality to produce pipelines of execution
Pure Validation
Add some monads to handle IO and control flow
Demo
–Tom Cargill
“The first 90 percent of the code accounts for the first
90 percent of the development time. The remaining 10
percent of the code accounts for the other 90 percent
of the development time.”
Ian Thomas (@anatomic) | December 2017
Practical Functional
Programming In JavaScript
https://drboolean.gitbooks.io/mostly-adequate-guide/
https://github.com/getify/Functional-Light-JS
https://medium.com/@lunde.andrews/easing-into-functional-programming-in-javascript-30056bcc49a9
https://fp-bingotron.ian-thomas.net/
http://www.tomharding.me/
https://github.com/fantasyland/fantasy-land
https://staltz.com/is-your-javascript-function-actually-pure.html
https://egghead.io/courses/quickly-transform-data-with-transducers
https://egghead.io/courses/professor-frisby-introduces-composable-functional-javascript
https://www.youtube.com/watch?v=moAfgDFVLUs

More Related Content

Similar to Category theory concept explained: Kleisli category

How Does Generative AI Actually Work? (a quick semi-technical introduction to...
How Does Generative AI Actually Work? (a quick semi-technical introduction to...How Does Generative AI Actually Work? (a quick semi-technical introduction to...
How Does Generative AI Actually Work? (a quick semi-technical introduction to...ssuser4edc93
 
Synergy of Human and Artificial Intelligence in Software Engineering
Synergy of Human and Artificial Intelligence in Software EngineeringSynergy of Human and Artificial Intelligence in Software Engineering
Synergy of Human and Artificial Intelligence in Software EngineeringTao Xie
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine LearningSri Ambati
 
Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016
Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016
Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016Codemotion
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programmingAbzetdin Adamov
 
Doing data science with Clojure
Doing data science with ClojureDoing data science with Clojure
Doing data science with ClojureSimon Belak
 
Patterns for the People
Patterns for the PeoplePatterns for the People
Patterns for the PeopleKevlin Henney
 
SBQS 2013 Keynote: Cooperative Testing and Analysis
SBQS 2013 Keynote: Cooperative Testing and AnalysisSBQS 2013 Keynote: Cooperative Testing and Analysis
SBQS 2013 Keynote: Cooperative Testing and AnalysisTao Xie
 
Data Science Accelerator Program
Data Science Accelerator ProgramData Science Accelerator Program
Data Science Accelerator ProgramGoDataDriven
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Designing nlp-js-extension
Designing nlp-js-extensionDesigning nlp-js-extension
Designing nlp-js-extensionAlain Lompo
 
Evolution of JDK Tools for Multithreaded Programming
Evolution of JDK Tools for Multithreaded ProgrammingEvolution of JDK Tools for Multithreaded Programming
Evolution of JDK Tools for Multithreaded ProgrammingGlobalLogic Ukraine
 
Developing Projects & Research
Developing Projects & ResearchDeveloping Projects & Research
Developing Projects & ResearchThomas Mylonas
 
ADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for Worse
ADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for WorseADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for Worse
ADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for WorseTechWell
 
SCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao Xie
SCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao XieSCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao Xie
SCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao XieTao Xie
 
Keepler Data Tech | Entendiendo tus propios modelos predictivos
Keepler Data Tech | Entendiendo tus propios modelos predictivosKeepler Data Tech | Entendiendo tus propios modelos predictivos
Keepler Data Tech | Entendiendo tus propios modelos predictivosKeepler Data Tech
 

Similar to Category theory concept explained: Kleisli category (20)

How Does Generative AI Actually Work? (a quick semi-technical introduction to...
How Does Generative AI Actually Work? (a quick semi-technical introduction to...How Does Generative AI Actually Work? (a quick semi-technical introduction to...
How Does Generative AI Actually Work? (a quick semi-technical introduction to...
 
All of Javascript
All of JavascriptAll of Javascript
All of Javascript
 
Synergy of Human and Artificial Intelligence in Software Engineering
Synergy of Human and Artificial Intelligence in Software EngineeringSynergy of Human and Artificial Intelligence in Software Engineering
Synergy of Human and Artificial Intelligence in Software Engineering
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016
Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016
Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programming
 
Doing data science with Clojure
Doing data science with ClojureDoing data science with Clojure
Doing data science with Clojure
 
Patterns for the People
Patterns for the PeoplePatterns for the People
Patterns for the People
 
SBQS 2013 Keynote: Cooperative Testing and Analysis
SBQS 2013 Keynote: Cooperative Testing and AnalysisSBQS 2013 Keynote: Cooperative Testing and Analysis
SBQS 2013 Keynote: Cooperative Testing and Analysis
 
Data Science Accelerator Program
Data Science Accelerator ProgramData Science Accelerator Program
Data Science Accelerator Program
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Designing nlp-js-extension
Designing nlp-js-extensionDesigning nlp-js-extension
Designing nlp-js-extension
 
Utility Classes
Utility ClassesUtility Classes
Utility Classes
 
All of javascript
All of javascriptAll of javascript
All of javascript
 
Evolution of JDK Tools for Multithreaded Programming
Evolution of JDK Tools for Multithreaded ProgrammingEvolution of JDK Tools for Multithreaded Programming
Evolution of JDK Tools for Multithreaded Programming
 
Developing Projects & Research
Developing Projects & ResearchDeveloping Projects & Research
Developing Projects & Research
 
AI Presentation 1
AI Presentation 1AI Presentation 1
AI Presentation 1
 
ADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for Worse
ADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for WorseADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for Worse
ADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for Worse
 
SCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao Xie
SCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao XieSCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao Xie
SCAM 2012 Keynote Slides on Cooperative Testing and Analysis by Tao Xie
 
Keepler Data Tech | Entendiendo tus propios modelos predictivos
Keepler Data Tech | Entendiendo tus propios modelos predictivosKeepler Data Tech | Entendiendo tus propios modelos predictivos
Keepler Data Tech | Entendiendo tus propios modelos predictivos
 

More from Ian Thomas

Orchestration vs Choreography - A Guide To Composing Your Monolith
Orchestration vs Choreography - A Guide To Composing Your MonolithOrchestration vs Choreography - A Guide To Composing Your Monolith
Orchestration vs Choreography - A Guide To Composing Your MonolithIan Thomas
 
Whose Stack Is It Anyway?
Whose Stack Is It Anyway?Whose Stack Is It Anyway?
Whose Stack Is It Anyway?Ian Thomas
 
Influencing Without Authority: Effective Staff+ Engineering
Influencing Without Authority: Effective Staff+ EngineeringInfluencing Without Authority: Effective Staff+ Engineering
Influencing Without Authority: Effective Staff+ EngineeringIan Thomas
 
Strategies For High Quality Serverless Applications on AWS
Strategies For High Quality Serverless Applications on AWSStrategies For High Quality Serverless Applications on AWS
Strategies For High Quality Serverless Applications on AWSIan Thomas
 
Breaking Out Of The Fear Cycle (LambdaConf 2018)
Breaking Out Of The Fear Cycle (LambdaConf 2018)Breaking Out Of The Fear Cycle (LambdaConf 2018)
Breaking Out Of The Fear Cycle (LambdaConf 2018)Ian Thomas
 
Why Speed Matters
Why Speed MattersWhy Speed Matters
Why Speed MattersIan Thomas
 
What Is Software Engineering?
What Is Software Engineering?What Is Software Engineering?
What Is Software Engineering?Ian Thomas
 
Does Anyone Remember YAGNI?
Does Anyone Remember YAGNI?Does Anyone Remember YAGNI?
Does Anyone Remember YAGNI?Ian Thomas
 
Patterns For React Application Design
Patterns For React Application DesignPatterns For React Application Design
Patterns For React Application DesignIan Thomas
 

More from Ian Thomas (9)

Orchestration vs Choreography - A Guide To Composing Your Monolith
Orchestration vs Choreography - A Guide To Composing Your MonolithOrchestration vs Choreography - A Guide To Composing Your Monolith
Orchestration vs Choreography - A Guide To Composing Your Monolith
 
Whose Stack Is It Anyway?
Whose Stack Is It Anyway?Whose Stack Is It Anyway?
Whose Stack Is It Anyway?
 
Influencing Without Authority: Effective Staff+ Engineering
Influencing Without Authority: Effective Staff+ EngineeringInfluencing Without Authority: Effective Staff+ Engineering
Influencing Without Authority: Effective Staff+ Engineering
 
Strategies For High Quality Serverless Applications on AWS
Strategies For High Quality Serverless Applications on AWSStrategies For High Quality Serverless Applications on AWS
Strategies For High Quality Serverless Applications on AWS
 
Breaking Out Of The Fear Cycle (LambdaConf 2018)
Breaking Out Of The Fear Cycle (LambdaConf 2018)Breaking Out Of The Fear Cycle (LambdaConf 2018)
Breaking Out Of The Fear Cycle (LambdaConf 2018)
 
Why Speed Matters
Why Speed MattersWhy Speed Matters
Why Speed Matters
 
What Is Software Engineering?
What Is Software Engineering?What Is Software Engineering?
What Is Software Engineering?
 
Does Anyone Remember YAGNI?
Does Anyone Remember YAGNI?Does Anyone Remember YAGNI?
Does Anyone Remember YAGNI?
 
Patterns For React Application Design
Patterns For React Application DesignPatterns For React Application Design
Patterns For React Application Design
 

Recently uploaded

Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Category theory concept explained: Kleisli category