SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

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
 

What's hot (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 to 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 to 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
 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
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
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
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...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
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
 

Monad