SlideShare una empresa de Scribd logo
1 de 38
Monad
CATEGORY THEORY
A monad is just a monoid in the category of
endofunctors, what's the problem?
SIMPLE ENGLISH
A monad is just a design pattern in
functional programming
BUT I DON’T USE FUNCTIONAL
PROGRAMMING
Function without side-effects
Functional composition
No shared state
Immutable objects
FUNCTIONS COMPOSITION
14
Calculate
length
"QQOME
QQSTRING"
Replace
"S" with
"QQ"
"SOME
STRING"
ToUpper
"some
string"
NULLABLE<T> - HOLDS EITHER T OR NULL
Nullable<int> a = new Nullable<int>(1);
Nullable<int> b = new Nullable<int>(2);
Nullable<int> c = a + b;
Nullable<int> c =
a.HasValue && b.HasValue
? new Nullable<int>(a.Value + b.Value)
: new Nullable<int>(null);
IENUMERABLE<T> - SEQUENCE
IEnumerable<int> a = new[]{1};
IEnumerable<int> b = new[]{2};
IEnumerable<int> c = from x in a from y in b select x + y;
IEnumerable<int> c = a.SelectMany(x => b, (x, y) => x+y);
TASK<T> - ASYNCHRONOUS
COMPUTATION
Task<int> a = Task.Run(() ⇒ 1);
Task<int> b = Task.Run(() ⇒ 2);
Task<int> c =
a.ContinueWith(x ⇒
b.ContinueWith(y ⇒
x.Result + y.Result)).Unwrap();
ContinueWith(Task<TResult> ⇒ TNewResult): Task<TNewResult>
Unwrap(Task<Task<TResult>>): Task<TResult>
SPECIALIZED SOLUTION
● Nullable - C♯ 2: arithmetic, “??” operator
●IEnumerable/IObservable - C♯ 3: LINQ
●Task - C♯ 5: async / await
●My cool class - No language support :-/
WHAT IF WE HAD SAME SYNTAX
do
a <- f()
b <- g()
return a + b
IS IT POSSIBLE ?
var a = f();
var b = g();
return from x in a from y in b select x + y;
● With following abilities:
○ Can be created (constructor or special method)
○ Make projection with internal value producing a new
Monad<U> (Map).
○ Can flatten Monad of Monad into Monad (Join)
● Immutable, without side effects.
● Monad contract doesn’t require to provide the held value !
MONAD IS A GENERIC TYPE M OVER T
MONAD FUNCTIONS: FLATTENING
Join: (monadOfMonad: Monad<Monad<T>>) ⇒ Monad<T>
MONAD FUNCTIONS: PROJECTION
Map: (monad: Monad<T>, projFunc: T ⇒ U) ⇒ Monad<U>
WHAT IS THE SIMPLEST MONAD ?
● ✅ Generic type: class Identity<T>
● ✅ Can be created: new Identity<T>(value)
● ✅ Projection: Map(func, value) ≡ func(value)
● ✅ Flattening:
Join(Identity<Identity<T>> value) ≡ Identity<T>(value)
CAN IENUMERABLE<T> BE A MONAD ?
● ✅ Generic type
● ✅ Can be created: new[]{...}, yield return value
● ✅ Projection: myIEnumerable.Select(value ⇒ value.ToString())
[1, 2…] ⇒ [“1”, “2”…]
● ✅ Flattening:
myIEnumerableOfIEnumerables.SelectMany(value ⇒ value)
[[1, 2], [3, 4]…] ⇒ [1, 2, 3, 4…]
MONAD FUNCTIONS: BINDING
Bind: (monad: Monad<T>, bindFunc: T ⇒ Monad<U>) ⇒ Monad<U>
COMBINING ALL TOGETHER
● Join: (mm: Monad<Monad<T>>) ⇒ Monad<T>
● Map: (monad: Monad<T>, projFunc: T ⇒ U) ⇒ Monad<U>
● Bind: (monad: Monad<T>, bindFunc: T ⇒ Monad<U>) ⇒ Monad<U>
● Bind ≡ monad.Map(value ⇒ bindFunc(value)).Join()
● Join ≡ monadOfMonad.Bind(monad ⇒ monad)
● Map ≡ monad.Bind(value ⇒ new Monad(projFunc(value)))
● return ⇔ Monad constructor
● q >=> w ≡ m ⇒ q(m.Bind(w))
IS THAT ALL ?
●3 monad laws
○ Left identity: return >=> g ≡ g
○ Right identity: f >=> return ≡ f
○ Associativity: (f >=> g) >=> h ≡ f >=> (g >=> h)
LEFT IDENTITY
Monad constructor bound with a function is just a function
called with the value stored in the monad
// Given
T value
Func<T, Monad<U>> valueToMonad // T ⇒Monad<U>
// Then
new Monad<T>(value).Bind(valueToMonad) ≡ valueToMonad(value)
LEFT IDENTITY
Monad constructor bound with function is just a function
called with the value stored in the monad
// Given
Monad<T> monad
// Then
monad.Bind(x ⇒ new Monad<T>(x)) ≡ monad
RIGHT IDENTITY
Binding monadic value to the same monad type doesn’t
change the original value.
RIGHT IDENTITY
Binding monadic value to the same monad type doesn’t
change the original value.
// Given
Monad<T> m
Func<T, Monad<U>> f // T ⇒Monad<U>
Func<U, Monad<V>> g // U ⇒Monad<V>
// Then
m.Bind(f).Bind(g) ≡ m.Bind(a ⇒ f(a).Bind(g))
ASSOCIATIVITY
The order in which Bind operations are
composed does not matter
ASSOCIATIVITY
The order in which Bind operations are
composed does not matter
public static IEnumerable<TResult> SelectMany<TSource, TResult>(
this IEnumerable<TSource> source,
Func<TSource, IEnumerable<TResult>> selector)
Flatten = SelectMany(x ⇒ x)
public static IEnumerable<TResult> Select<TSource, TResult>(
this IEnumerable<TSource> source,
Func<TSource, TResult> selector)
public static Monad<TResult> Bind<TSource, TResult>(
this Monad<TSource> source,
Func<TSource, Monad<TResult>> selector)
Join = Bind(x ⇒ x)
public static Monad<TResult> Map<TSource, TResult>(
this Monad<TSource> source,
Func<TSource, TResult> selector)
SO, IS IENUMERABLE<T> A MONAD ?
new Monad<T>(value).Bind(valueToMonad) ≡ valueToMonad(value)
[1].SelectMany(value ⇒ [value.ToString()]) ≡
[1].Select(value => [value.ToString()]).Flatten() ≡ [[“1”]].Flatten() ≡ [“1”]
(value ⇒ [value.ToString()])(1) ≡ [“1”]
IENUMERABLE<T> - LEFT IDENTITY
monad.Bind(x ⇒ new Monad<T>(x)) ≡ monad
[1, 2…].SelectMany(value ⇒ [value]) ≡ [1, 2…]
[1, 2…].Select(value => [value]).Flatten() ≡
[[1], [2]..].Flatten() ≡ [1, 2…]
IENUMERABLE<T> - RIGHT IDENTITY
m.Bind(f).Bind(g) ≡ m.Bind(a ⇒ f(a).Bind(g))
[1, 2…].SelectMany(value ⇒ [value + 1])
.SelectMany(value ⇒ [value.ToString()])
[1, 2…].SelectMany(
value => ([value + 1]) .SelectMany(value ⇒ [value.ToString()])
) ≡ [“2”, “3”…]
IENUMERABLE<T> - ASSOCIATIVITY
[2, 3…]
[2] [“2”], [3]… , [“3”]…
[“2”, “3”…]
MORE MONADS
● Maybe (Nullable, Optional)
● Logging: Log while calculating value
● State: Preserve state between functions call
● Ordering: See next slide
● Parser: See next slide
COMPUTATION ORDER - PROBLEM
Task<int> x = Task.Run(() => { Write(1); return 1; });
Task<int> y = Task.Run(() => { Write(2); return 2; });
Task<int> z = Task.Run(() => { Write(3); return 3; });
return x + y + z;
COMPUTATION ORDER - SOLUTION
Task.Run(() => { Write(1); return 1; }).Bind(x =>
Task.Run(() => { Write(2); return 2; }).Bind(y =>
Task.Run(() => { Write(3); return 3; }).Bind(z =>
x + y + z)))
MONAD DEFINES ORDER
int x = f();
int y = g();
int z = h();
return x + y + z;
f().Bind(x =>
g().Bind(y =>
h().Bind(z =>
x + y + z)));
Monad<int> f();
Monad<int> g();
Monad<int> h();
DOES LINQ USE IENUMERABLE AS A MONAD ?
What you see
from x in a
from y in b
from z in c
select x + y + z;
What is the truth
a.SelectMany(
x => b,
(x, y) => new {x, y})
.SelectMany(
@t => c,
(@t, z) => @t.x + @t.y + z);
What you think
a.SelectMany(x =>
b.SelectMany(y =>
c.SelectMany(z =>
yield return x + y + z)));
MONAIDIC PARSER SAMPLE
static readonly Parser<Expression> Function =
from name in Parse.Letter.AtLeastOnce().Text()
from lparen in Parse.Char('(')
from expr in Parse.Ref(() => Expr).DelimitedBy(Parse.Char(',').Token())
from rparen in Parse.Char(')')
select CallFunction(name, expr.ToArray());
static readonly Parser<Expression> Constant =
Parse.Decimal.Select(x => Expression.Constant(double.Parse(x)))
.Named("number");
static readonly Parser<Expression> Factor =
(from lparen in Parse.Char('(')
from expr in Parse.Ref(() => Expr)
from rparen in Parse.Char(')')
select expr).Named("expression").XOr(Constant).XOr(Function);
SUMMARY
● Monad concept is simple
● Monads hold value but doesn’t give it to you
● Allows writing generic code
● Easier to test, easier to maintain
● Language support is an advantage
REFERENCES
https://weblogs.asp.net/dixin/Tags/Category%20Theory
https://davesquared.net/categories/functional-programming/
https://fsharpforfunandprofit.com/posts/elevated-world/
https://www.ahnfelt.net/monads-forget-about-bind/
https://mikhail.io/tags/functional-programming/
http://adit.io/posts/2013-06-10-three-useful-monads.html
http://learnyouahaskell.com/a-fistful-of-monads
https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
https://fsharpforfunandprofit.com/posts/elevated-world/#series-toc
https://kubuszok.com/2018/different-ways-to-understand-a-monad/
https://mikehadlow.blogspot.com/2011/01/monads-in-c1-introduction.html
Monad

Más contenido relacionado

La actualidad más candente

The Ring programming language version 1.6 book - Part 35 of 189
The Ring programming language version 1.6 book - Part 35 of 189The Ring programming language version 1.6 book - Part 35 of 189
The Ring programming language version 1.6 book - Part 35 of 189Mahmoud Samir Fayed
 
Immutability and Javascript - Nadia Miętkiewicz
Immutability and Javascript - Nadia MiętkiewiczImmutability and Javascript - Nadia Miętkiewicz
Immutability and Javascript - Nadia MiętkiewiczVisuality
 
Idea for ineractive programming language
Idea for ineractive programming languageIdea for ineractive programming language
Idea for ineractive programming languageLincoln Hannah
 
Super TypeScript II Turbo - FP Remix (NG Conf 2017)
Super TypeScript II Turbo - FP Remix (NG Conf 2017)Super TypeScript II Turbo - FP Remix (NG Conf 2017)
Super TypeScript II Turbo - FP Remix (NG Conf 2017)Sean May
 
Print input-presentation
Print input-presentationPrint input-presentation
Print input-presentationMartin McBride
 
The Ring programming language version 1.9 book - Part 41 of 210
The Ring programming language version 1.9 book - Part 41 of 210The Ring programming language version 1.9 book - Part 41 of 210
The Ring programming language version 1.9 book - Part 41 of 210Mahmoud Samir Fayed
 
Lec 9 05_sept [compatibility mode]
Lec 9 05_sept [compatibility mode]Lec 9 05_sept [compatibility mode]
Lec 9 05_sept [compatibility mode]Palak Sanghani
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35Bilal Ahmed
 
Introduction to Monads in Scala (1)
Introduction to Monads in Scala (1)Introduction to Monads in Scala (1)
Introduction to Monads in Scala (1)stasimus
 
Lesson 16 indeterminate forms (l'hopital's rule)
Lesson 16 indeterminate forms (l'hopital's rule)Lesson 16 indeterminate forms (l'hopital's rule)
Lesson 16 indeterminate forms (l'hopital's rule)Rnold Wilson
 
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm ProblemsLeet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm ProblemsSunil Yadav
 
LeetCode April Coding Challenge
LeetCode April Coding ChallengeLeetCode April Coding Challenge
LeetCode April Coding ChallengeSunil Yadav
 
The Ring programming language version 1.7 book - Part 41 of 196
The Ring programming language version 1.7 book - Part 41 of 196The Ring programming language version 1.7 book - Part 41 of 196
The Ring programming language version 1.7 book - Part 41 of 196Mahmoud Samir Fayed
 
ماترێکس به‌ کوردی ئارام
ماترێکس به‌ کوردی ئارامماترێکس به‌ کوردی ئارام
ماترێکس به‌ کوردی ئارامAram Jamal
 

La actualidad más candente (20)

Polymorphism
PolymorphismPolymorphism
Polymorphism
 
The Ring programming language version 1.6 book - Part 35 of 189
The Ring programming language version 1.6 book - Part 35 of 189The Ring programming language version 1.6 book - Part 35 of 189
The Ring programming language version 1.6 book - Part 35 of 189
 
Immutability and Javascript - Nadia Miętkiewicz
Immutability and Javascript - Nadia MiętkiewiczImmutability and Javascript - Nadia Miętkiewicz
Immutability and Javascript - Nadia Miętkiewicz
 
Idea for ineractive programming language
Idea for ineractive programming languageIdea for ineractive programming language
Idea for ineractive programming language
 
Super TypeScript II Turbo - FP Remix (NG Conf 2017)
Super TypeScript II Turbo - FP Remix (NG Conf 2017)Super TypeScript II Turbo - FP Remix (NG Conf 2017)
Super TypeScript II Turbo - FP Remix (NG Conf 2017)
 
Print input-presentation
Print input-presentationPrint input-presentation
Print input-presentation
 
The Ring programming language version 1.9 book - Part 41 of 210
The Ring programming language version 1.9 book - Part 41 of 210The Ring programming language version 1.9 book - Part 41 of 210
The Ring programming language version 1.9 book - Part 41 of 210
 
Static and const members
Static and const membersStatic and const members
Static and const members
 
Lec 9 05_sept [compatibility mode]
Lec 9 05_sept [compatibility mode]Lec 9 05_sept [compatibility mode]
Lec 9 05_sept [compatibility mode]
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
Introduction to Monads in Scala (1)
Introduction to Monads in Scala (1)Introduction to Monads in Scala (1)
Introduction to Monads in Scala (1)
 
Lesson 16 indeterminate forms (l'hopital's rule)
Lesson 16 indeterminate forms (l'hopital's rule)Lesson 16 indeterminate forms (l'hopital's rule)
Lesson 16 indeterminate forms (l'hopital's rule)
 
Advanced JavaScript
Advanced JavaScript Advanced JavaScript
Advanced JavaScript
 
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm ProblemsLeet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
 
LeetCode April Coding Challenge
LeetCode April Coding ChallengeLeetCode April Coding Challenge
LeetCode April Coding Challenge
 
Chapter2
Chapter2Chapter2
Chapter2
 
The Ring programming language version 1.7 book - Part 41 of 196
The Ring programming language version 1.7 book - Part 41 of 196The Ring programming language version 1.7 book - Part 41 of 196
The Ring programming language version 1.7 book - Part 41 of 196
 
ماترێکس به‌ کوردی ئارام
ماترێکس به‌ کوردی ئارامماترێکس به‌ کوردی ئارام
ماترێکس به‌ کوردی ئارام
 
Cquestions
Cquestions Cquestions
Cquestions
 

Similar a Monad

Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Mario Fusco
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Codemotion
 
Let Us Learn Lambda Using C# 3.0
Let Us Learn Lambda Using C# 3.0Let Us Learn Lambda Using C# 3.0
Let Us Learn Lambda Using C# 3.0Sheik Uduman Ali
 
Monads - Dublin Scala meetup
Monads - Dublin Scala meetupMonads - Dublin Scala meetup
Monads - Dublin Scala meetupMikhail Girkin
 
Functional Programming Patterns (NDC London 2014)
Functional Programming Patterns (NDC London 2014)Functional Programming Patterns (NDC London 2014)
Functional Programming Patterns (NDC London 2014)Scott Wlaschin
 
Functional programming with haskell
Functional programming with haskellFunctional programming with haskell
Functional programming with haskellfaradjpour
 
Cs1123 8 functions
Cs1123 8 functionsCs1123 8 functions
Cs1123 8 functionsTAlha MAlik
 
Something about Golang
Something about GolangSomething about Golang
Something about GolangAnton Arhipov
 
Drinking the free kool-aid
Drinking the free kool-aidDrinking the free kool-aid
Drinking the free kool-aidDavid Hoyt
 
An Introduction to Part of C++ STL
An Introduction to Part of C++ STLAn Introduction to Part of C++ STL
An Introduction to Part of C++ STL乐群 陈
 
Introduction to Deep Neural Network
Introduction to Deep Neural NetworkIntroduction to Deep Neural Network
Introduction to Deep Neural NetworkLiwei Ren任力偉
 
Kotlin Perfomance on Android / Александр Смирнов (Splyt)
Kotlin Perfomance on Android / Александр Смирнов (Splyt)Kotlin Perfomance on Android / Александр Смирнов (Splyt)
Kotlin Perfomance on Android / Александр Смирнов (Splyt)Ontico
 
chapter1.ppt
chapter1.pptchapter1.ppt
chapter1.pptebinazer1
 
Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014Cyrille Martraire
 

Similar a Monad (20)

Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...
 
Monads in Swift
Monads in SwiftMonads in Swift
Monads in Swift
 
Gwt and Xtend
Gwt and XtendGwt and Xtend
Gwt and Xtend
 
Let Us Learn Lambda Using C# 3.0
Let Us Learn Lambda Using C# 3.0Let Us Learn Lambda Using C# 3.0
Let Us Learn Lambda Using C# 3.0
 
Monads - Dublin Scala meetup
Monads - Dublin Scala meetupMonads - Dublin Scala meetup
Monads - Dublin Scala meetup
 
A taste of Functional Programming
A taste of Functional ProgrammingA taste of Functional Programming
A taste of Functional Programming
 
Functional Programming Patterns (NDC London 2014)
Functional Programming Patterns (NDC London 2014)Functional Programming Patterns (NDC London 2014)
Functional Programming Patterns (NDC London 2014)
 
Functional programming with haskell
Functional programming with haskellFunctional programming with haskell
Functional programming with haskell
 
New C# features
New C# featuresNew C# features
New C# features
 
6. function
6. function6. function
6. function
 
Cs1123 8 functions
Cs1123 8 functionsCs1123 8 functions
Cs1123 8 functions
 
Something about Golang
Something about GolangSomething about Golang
Something about Golang
 
Drinking the free kool-aid
Drinking the free kool-aidDrinking the free kool-aid
Drinking the free kool-aid
 
An Introduction to Part of C++ STL
An Introduction to Part of C++ STLAn Introduction to Part of C++ STL
An Introduction to Part of C++ STL
 
Introduction to typescript
Introduction to typescriptIntroduction to typescript
Introduction to typescript
 
Introduction to Deep Neural Network
Introduction to Deep Neural NetworkIntroduction to Deep Neural Network
Introduction to Deep Neural Network
 
Kotlin Perfomance on Android / Александр Смирнов (Splyt)
Kotlin Perfomance on Android / Александр Смирнов (Splyt)Kotlin Perfomance on Android / Александр Смирнов (Splyt)
Kotlin Perfomance on Android / Александр Смирнов (Splyt)
 
chapter1.ppt
chapter1.pptchapter1.ppt
chapter1.ppt
 
Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014
 

Último

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Último (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Monad