Submit Search
Upload
Introduction to programming with ZIO functional effects
•
1 like
•
148 views
Jorge Vásquez
Follow
Introduction to programming with ZIO functional effects
Read less
Read more
Software
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 30
Download now
Download to read offline
Recommended
Zio in real world
Zio in real world
Wiem Zine Elabidine
ZIO-Direct - Functional Scala 2022
ZIO-Direct - Functional Scala 2022
Alexander Ioffe
Sequence and Traverse - Part 1
Sequence and Traverse - Part 1
Philip Schwarz
Functional Domain Modeling - The ZIO 2 Way
Functional Domain Modeling - The ZIO 2 Way
Debasish Ghosh
Exploring ZIO Prelude: The game changer for typeclasses in Scala
Exploring ZIO Prelude: The game changer for typeclasses in Scala
Jorge Vásquez
ZIO Queue
ZIO Queue
John De Goes
The lazy programmer's guide to writing thousands of tests
The lazy programmer's guide to writing thousands of tests
Scott Wlaschin
Refactoring Functional Type Classes
Refactoring Functional Type Classes
John De Goes
Recommended
Zio in real world
Zio in real world
Wiem Zine Elabidine
ZIO-Direct - Functional Scala 2022
ZIO-Direct - Functional Scala 2022
Alexander Ioffe
Sequence and Traverse - Part 1
Sequence and Traverse - Part 1
Philip Schwarz
Functional Domain Modeling - The ZIO 2 Way
Functional Domain Modeling - The ZIO 2 Way
Debasish Ghosh
Exploring ZIO Prelude: The game changer for typeclasses in Scala
Exploring ZIO Prelude: The game changer for typeclasses in Scala
Jorge Vásquez
ZIO Queue
ZIO Queue
John De Goes
The lazy programmer's guide to writing thousands of tests
The lazy programmer's guide to writing thousands of tests
Scott Wlaschin
Refactoring Functional Type Classes
Refactoring Functional Type Classes
John De Goes
A Prelude of Purity: Scaling Back ZIO
A Prelude of Purity: Scaling Back ZIO
Jorge Vásquez
The Expression Problem - Part 1
The Expression Problem - Part 1
Philip Schwarz
Capabilities for Resources and Effects
Capabilities for Resources and Effects
Martin Odersky
OOP and FP
OOP and FP
Mario Fusco
Functional Design Patterns (DevTernity 2018)
Functional Design Patterns (DevTernity 2018)
Scott Wlaschin
The aggregate function - from sequential and parallel folds to parallel aggre...
The aggregate function - from sequential and parallel folds to parallel aggre...
Philip Schwarz
Why functional programming and category theory strongly matters
Why functional programming and category theory strongly matters
Piotr Paradziński
Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...
Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...
Philip Schwarz
Google test training
Google test training
Thierry Gayet
Refactoring
Refactoring
Tausun Akhtary
Functional Programming 101 with Scala and ZIO @FunctionalWorld
Functional Programming 101 with Scala and ZIO @FunctionalWorld
Jorge Vásquez
Functor, Apply, Applicative And Monad
Functor, Apply, Applicative And Monad
Oliver Daff
Purely Functional Data Structures in Scala
Purely Functional Data Structures in Scala
Vladimir Kostyukov
Blazing Fast, Pure Effects without Monads — LambdaConf 2018
Blazing Fast, Pure Effects without Monads — LambdaConf 2018
John De Goes
Functional and Algebraic Domain Modeling
Functional and Algebraic Domain Modeling
Debasish Ghosh
Domain Driven Design with the F# type System -- NDC London 2013
Domain Driven Design with the F# type System -- NDC London 2013
Scott Wlaschin
Implementing the IO Monad in Scala
Implementing the IO Monad in Scala
Hermann Hueck
Domain Modeling in a Functional World
Domain Modeling in a Functional World
Debasish Ghosh
Domain Modeling with FP (DDD Europe 2020)
Domain Modeling with FP (DDD Europe 2020)
Scott Wlaschin
N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...
N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...
Philip Schwarz
ZIO Queue
ZIO Queue
Wiem Zine Elabidine
Mypy pycon-fi-2012
Mypy pycon-fi-2012
jukkaleh
More Related Content
What's hot
A Prelude of Purity: Scaling Back ZIO
A Prelude of Purity: Scaling Back ZIO
Jorge Vásquez
The Expression Problem - Part 1
The Expression Problem - Part 1
Philip Schwarz
Capabilities for Resources and Effects
Capabilities for Resources and Effects
Martin Odersky
OOP and FP
OOP and FP
Mario Fusco
Functional Design Patterns (DevTernity 2018)
Functional Design Patterns (DevTernity 2018)
Scott Wlaschin
The aggregate function - from sequential and parallel folds to parallel aggre...
The aggregate function - from sequential and parallel folds to parallel aggre...
Philip Schwarz
Why functional programming and category theory strongly matters
Why functional programming and category theory strongly matters
Piotr Paradziński
Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...
Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...
Philip Schwarz
Google test training
Google test training
Thierry Gayet
Refactoring
Refactoring
Tausun Akhtary
Functional Programming 101 with Scala and ZIO @FunctionalWorld
Functional Programming 101 with Scala and ZIO @FunctionalWorld
Jorge Vásquez
Functor, Apply, Applicative And Monad
Functor, Apply, Applicative And Monad
Oliver Daff
Purely Functional Data Structures in Scala
Purely Functional Data Structures in Scala
Vladimir Kostyukov
Blazing Fast, Pure Effects without Monads — LambdaConf 2018
Blazing Fast, Pure Effects without Monads — LambdaConf 2018
John De Goes
Functional and Algebraic Domain Modeling
Functional and Algebraic Domain Modeling
Debasish Ghosh
Domain Driven Design with the F# type System -- NDC London 2013
Domain Driven Design with the F# type System -- NDC London 2013
Scott Wlaschin
Implementing the IO Monad in Scala
Implementing the IO Monad in Scala
Hermann Hueck
Domain Modeling in a Functional World
Domain Modeling in a Functional World
Debasish Ghosh
Domain Modeling with FP (DDD Europe 2020)
Domain Modeling with FP (DDD Europe 2020)
Scott Wlaschin
N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...
N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...
Philip Schwarz
What's hot
(20)
A Prelude of Purity: Scaling Back ZIO
A Prelude of Purity: Scaling Back ZIO
The Expression Problem - Part 1
The Expression Problem - Part 1
Capabilities for Resources and Effects
Capabilities for Resources and Effects
OOP and FP
OOP and FP
Functional Design Patterns (DevTernity 2018)
Functional Design Patterns (DevTernity 2018)
The aggregate function - from sequential and parallel folds to parallel aggre...
The aggregate function - from sequential and parallel folds to parallel aggre...
Why functional programming and category theory strongly matters
Why functional programming and category theory strongly matters
Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...
Algebraic Data Types forData Oriented Programming - From Haskell and Scala t...
Google test training
Google test training
Refactoring
Refactoring
Functional Programming 101 with Scala and ZIO @FunctionalWorld
Functional Programming 101 with Scala and ZIO @FunctionalWorld
Functor, Apply, Applicative And Monad
Functor, Apply, Applicative And Monad
Purely Functional Data Structures in Scala
Purely Functional Data Structures in Scala
Blazing Fast, Pure Effects without Monads — LambdaConf 2018
Blazing Fast, Pure Effects without Monads — LambdaConf 2018
Functional and Algebraic Domain Modeling
Functional and Algebraic Domain Modeling
Domain Driven Design with the F# type System -- NDC London 2013
Domain Driven Design with the F# type System -- NDC London 2013
Implementing the IO Monad in Scala
Implementing the IO Monad in Scala
Domain Modeling in a Functional World
Domain Modeling in a Functional World
Domain Modeling with FP (DDD Europe 2020)
Domain Modeling with FP (DDD Europe 2020)
N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...
N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and...
Similar to Introduction to programming with ZIO functional effects
ZIO Queue
ZIO Queue
Wiem Zine Elabidine
Mypy pycon-fi-2012
Mypy pycon-fi-2012
jukkaleh
What are monads?
What are monads?
José Luis García Hernández
Python functional programming
Python functional programming
Geison Goes
Functional programming
Functional programming
Prashant Kalkar
AOT-compilation of JavaScript with V8
AOT-compilation of JavaScript with V8
Phil Eaton
Boo Manifesto
Boo Manifesto
hu hans
Introduction to python programming ( part-1)
Introduction to python programming ( part-1)
Ziyauddin Shaik
ATS Programming
ATS Programming
Zhiqiang Ren
ooc - A hybrid language experiment
ooc - A hybrid language experiment
Amos Wenger
ooc - A hybrid language experiment
ooc - A hybrid language experiment
Amos Wenger
Remix Your Language Tooling (JSConf.eu 2012)
Remix Your Language Tooling (JSConf.eu 2012)
lennartkats
Concurrency and Parallelism with Scala
Concurrency and Parallelism with Scala
Timothy Perrett
Tips for Happier Python Debugging
Tips for Happier Python Debugging
Chun-Hao Chang
Zio from Home
Zio from Home
Wiem Zine Elabidine
The secret of Functional Programming revealed!
The secret of Functional Programming revealed!
Torbjørn Marø
Functional pogramming hl overview
Functional pogramming hl overview
Elad Avneri
C++ in the 21st Century
C++ in the 21st Century
bittorrentinc
C++ unit-1-part-10
C++ unit-1-part-10
Jadavsejal
Functional Programming - Worth the Effort
Functional Programming - Worth the Effort
BoldRadius Solutions
Similar to Introduction to programming with ZIO functional effects
(20)
ZIO Queue
ZIO Queue
Mypy pycon-fi-2012
Mypy pycon-fi-2012
What are monads?
What are monads?
Python functional programming
Python functional programming
Functional programming
Functional programming
AOT-compilation of JavaScript with V8
AOT-compilation of JavaScript with V8
Boo Manifesto
Boo Manifesto
Introduction to python programming ( part-1)
Introduction to python programming ( part-1)
ATS Programming
ATS Programming
ooc - A hybrid language experiment
ooc - A hybrid language experiment
ooc - A hybrid language experiment
ooc - A hybrid language experiment
Remix Your Language Tooling (JSConf.eu 2012)
Remix Your Language Tooling (JSConf.eu 2012)
Concurrency and Parallelism with Scala
Concurrency and Parallelism with Scala
Tips for Happier Python Debugging
Tips for Happier Python Debugging
Zio from Home
Zio from Home
The secret of Functional Programming revealed!
The secret of Functional Programming revealed!
Functional pogramming hl overview
Functional pogramming hl overview
C++ in the 21st Century
C++ in the 21st Century
C++ unit-1-part-10
C++ unit-1-part-10
Functional Programming - Worth the Effort
Functional Programming - Worth the Effort
More from Jorge Vásquez
Behold! The Happy Path To Captivate Your Users With Stunning CLI Apps!
Behold! The Happy Path To Captivate Your Users With Stunning CLI Apps!
Jorge Vásquez
Programación Funcional 101 con Scala y ZIO 2.0
Programación Funcional 101 con Scala y ZIO 2.0
Jorge Vásquez
Be Smart, Constrain Your Types to Free Your Brain!
Be Smart, Constrain Your Types to Free Your Brain!
Jorge Vásquez
Consiguiendo superpoderes para construir aplicaciones modernas en la JVM con ZIO
Consiguiendo superpoderes para construir aplicaciones modernas en la JVM con ZIO
Jorge Vásquez
ZIO Prelude - ZIO World 2021
ZIO Prelude - ZIO World 2021
Jorge Vásquez
Exploring type level programming in Scala
Exploring type level programming in Scala
Jorge Vásquez
The Terror-Free Guide to Introducing Functional Scala at Work
The Terror-Free Guide to Introducing Functional Scala at Work
Jorge Vásquez
More from Jorge Vásquez
(7)
Behold! The Happy Path To Captivate Your Users With Stunning CLI Apps!
Behold! The Happy Path To Captivate Your Users With Stunning CLI Apps!
Programación Funcional 101 con Scala y ZIO 2.0
Programación Funcional 101 con Scala y ZIO 2.0
Be Smart, Constrain Your Types to Free Your Brain!
Be Smart, Constrain Your Types to Free Your Brain!
Consiguiendo superpoderes para construir aplicaciones modernas en la JVM con ZIO
Consiguiendo superpoderes para construir aplicaciones modernas en la JVM con ZIO
ZIO Prelude - ZIO World 2021
ZIO Prelude - ZIO World 2021
Exploring type level programming in Scala
Exploring type level programming in Scala
The Terror-Free Guide to Introducing Functional Scala at Work
The Terror-Free Guide to Introducing Functional Scala at Work
Recently uploaded
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
Wave PLM
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
soniya singh
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
kalichargn70th171
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Christina Lin
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
aditisharan08
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
soniya singh
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
bodapatigopi8531
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
MyIntelliSource, Inc.
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
AxelRicardoTrocheRiq
Asset Management Software - Infographic
Asset Management Software - Infographic
Hr365.us smith
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
Wave PLM
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
Christina Lin
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
MyIntelliSource, Inc.
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Alberto González Trastoy
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
OPEN KNOWLEDGE GmbH
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
VICTOR MAESTRE RAMIREZ
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
VitsRangannavar
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
BradBedford3
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
OnePlan Solutions
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
kotipi9215
Recently uploaded
(20)
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
Asset Management Software - Infographic
Asset Management Software - Infographic
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
Introduction to programming with ZIO functional effects
1.
Introduction to Programming with ZIO
Functional Effects
2.
JORGE VASQUEZ SCALA DEVELOPER
3.
Agenda ● Basic concepts
about Functional Programming (FP) ● Basic concepts about ZIO ● Live coding: Hangman game
4.
What is Functional Programming?
5.
Programming with Pure Functions!
6.
Programming with Pure Functions! Total
7.
def divide(a: Int,
b: Int): Int = a / b divide(5, 0) // java.lang.ArithmeticException: / by zero
8.
def divide(a: Int,
b: Int): Option[Int] = if (b != 0) Some(a/b) else None divide(5, 0) // None
9.
Programming with Pure Functions! Total Deterministic
10.
var a =
0; def increment(inc: Int): Int = { a += inc a } increment(1) // 1 increment(1) // 2
11.
def increment(a: Int)(inc:
Int): Int = { a + inc }
12.
Programming with Pure Functions! Total Deterministic No
side-effects
13.
But... I need my side-effects!
14.
What can we do?
15.
Functions that describe side-effects!
16.
Enter
17.
Composable programming
18.
Type-safe programming
19.
Async and concurrent programming
20.
The ZIO data
type ZIO[-R, +E, +A]
21.
ZIO data type
Mental Model R => Either[E, A]
22.
ZIO Type Aliases Task[+A]
= ZIO[Any, Throwable, A]
23.
ZIO Type Aliases UIO[+A]
= ZIO[Any, Nothing, A]
24.
ZIO Type Aliases RIO[-R,
+A] = ZIO[R, Throwable, A]
25.
ZIO Type Aliases IO[+E,
+A] = ZIO[Any, E, A]
26.
ZIO Type Aliases URIO[-R,
+A] = ZIO[R, Nothing, A]
27.
Live coding: Hangman game with
ZIO
28.
GitHub repo https://github.com/jorge-vasquez-2301/zio-hangman
29.
THANK YOU!
30.
@jorvasquez2301 jorge.vasquez@scalac.io jorge-vasquez-2301 Contact me
Download now