SlideShare a Scribd company logo
1 of 65
Download to read offline
Engineering Team Lead, Sharethrough

@kelleyrobinson
Demystifying Scala
Kelley Robinson
Demystifying Scala
📍Lausanne
Engineering Team Lead, Sharethrough
@kelleyrobinson
Demystifying Scala
Kelley Robinson
Engineering Team Lead, Sharethrough
@kelleyrobinson
Kelley Robinson
DEMYSTIFYING SCALA @KELLEYROBINSON
Why Scala
How to get started
Introduction to Scala
DEMYSTIFYING SCALA @KELLEYROBINSON
Why Scala
How to get started
Introduction to Scala
Ina Garten a.k.a.
The Barefoot Contessa
DEMYSTIFYING SCALA @KELLEYROBINSON
Syntax Intro
DEMYSTIFYING SCALA @KELLEYROBINSON
“How easy is that?”.isEmpty
// Boolean = false
val chefs = List("Ina", "Martha", "Giada")
// List[String] = List(Ina, Martha, Giada)
chefs(0)
// String = Ina
DEMYSTIFYING SCALA @KELLEYROBINSON
DEMYSTIFYING SCALA @KELLEYROBINSON
def isStoreBoughtFine(yourName: String): Boolean = {


val areYouAnyoneButIna = yourName != "Ina Garten"



areYouAnyoneButIna
}
Many ways to write a function...
DEMYSTIFYING SCALA @KELLEYROBINSON
def isStoreBoughtFine(yourName: String): Boolean = {


yourName != "Ina Garten"
}
Many ways to write a function...
DEMYSTIFYING SCALA @KELLEYROBINSON
def isStoreBoughtFine(yourName: String): Boolean =


yourName != "Ina Garten"
Many ways to write a function...
DEMYSTIFYING SCALA @KELLEYROBINSON
def isStoreBoughtFine(yourName: String) =


yourName != "Ina Garten"
Many ways to write a function...
DEMYSTIFYING SCALA @KELLEYROBINSON
def isStoreBoughtFine(yourName: String): Boolean =


"Ina Garten”
// error: type mismatch;
// found : String
// required: Boolean
Types provide safety
DEMYSTIFYING SCALA @KELLEYROBINSON
def isStoreBoughtFine(yourName: String): Boolean
// ok
isStoreBoughtFine(“Kelley")
// oh no!
isStoreBoughtFine(42)
// error: type mismatch;
// found : Int(42)
// required: String
Calling a function
DEMYSTIFYING SCALA @KELLEYROBINSON
val barefootContessa = "Ina Garten”


val barefootContessa = "Kelley Robinson"

// <console> error: barefootContessa is already defined
val yasKween = barefootContessa.toUpperCase
println(barefootContessa)
// Ina Garten
Data is immutable by default
DEMYSTIFYING SCALA @KELLEYROBINSON
Scala in a Nutshell
Object-Oriented
Meets Functional
Have the best of both worlds.
@KELLEYROBINSONDEMYSTIFYING SCALA
DEMYSTIFYING SCALA @KELLEYROBINSON
Functional Programming
DEMYSTIFYING SCALA @KELLEYROBINSON
FP: Everything is an expression
• think in values, not side-effects
• statement is an expression with Unit return type
FP: Avoid Side Effects
Changes outside of function scope
Modifies state
Not predictable
DEMYSTIFYING SCALA @KELLEYROBINSON
FP: Referential
transparency
An expression can be replaced by
its value without changing the
program behavior
DEMYSTIFYING SCALA @KELLEYROBINSON
FP: Immutable data
Avoid modifying state
DEMYSTIFYING SCALA @KELLEYROBINSON
FP: Expressions
The programmer benefits
Understanding
Predictability
Unit testing
DEMYSTIFYING SCALA @KELLEYROBINSON
SEAMLESS JAVA INTEROP TYPE INFERENCE CONCURRENCY & DISTRIBUTION
TRAITS PATTERN MATCHING HIGHER-ORDER FUNCTIONS
Scala in a Nutshell
DEMYSTIFYING SCALA @KELLEYROBINSON
Seamless Java Interop
All the benefits of the Java
Virtual Machine (JVM)
@KELLEYROBINSONDEMYSTIFYING SCALA
Type Inference
Let the type system
work for you
DEMYSTIFYING SCALA @KELLEYROBINSON
Traits
Flexible interfaces
@KELLEYROBINSONDEMYSTIFYING SCALA
DEMYSTIFYING SCALA @KELLEYROBINSON
trait CelebrityChef



trait FoodNetworkStar extends CelebrityChef {

val showName: String

}



trait BestSellingAuthor {

val bookName: String

}



object InaGarten extends FoodNetworkStar

with BestSellingAuthor {

val bookName: String = "Cooking for Jeffrey"

val showName: String = "Barefoot Contessa"

}
DEMYSTIFYING SCALA @KELLEYROBINSON
trait CelebrityChef



trait FoodNetworkStar extends CelebrityChef

object InaGarten extends FoodNetworkStar with BestSellingAuthor
object RoyChoi extends CelebrityChef
def learnToCook(instructor: CelebrityChef) = { ... }
Pattern Matching
“Switch” on steroids
DEMYSTIFYING SCALA @KELLEYROBINSON
DEMYSTIFYING SCALA @KELLEYROBINSON
def matchTest(x: Int): String =
x match {

case 1 => "one"

case 2 => "two"

case _ => "many"

}
println(matchTest(3))
// “many”
Pattern Matching
DEMYSTIFYING SCALA @KELLEYROBINSON
sealed trait Ingredient

case object Produce extends Ingredient

case object Meat extends Ingredient

case object DryGood extends Ingredient



def storageLocation(i: Ingredient): String =
i match {

case Produce => "Refrigerator"

case Meat => "Freezer"

case DryGood => "Pantry"

}
Pattern Matching
Higher-order
Functions
Be expressive and succinct
DEMYSTIFYING SCALA @KELLEYROBINSON
DEMYSTIFYING SCALA @KELLEYROBINSON
trait Ingredient { val shelfLife: Int }
Scala
val ingredients: Array[Ingredient]

val (eatNow, eatLater) = ingredients.partition(i => i.shelfLife < 7)
Java
List<Ingredient> ingredients;

List<Ingredient> eatNow = new ArrayList<Ingredient>(ingredients.size());

List<Ingredient> eatLater = new ArrayList<Ingredient>(ingredients.size());

for (Ingredient ingredient : ingredient) {

if (ingredient.getShelfLife() < 7)

eatNow.add(ingredient);

else

eatLater.add(ingredient);

}
DEMYSTIFYING SCALA @KELLEYROBINSON
trait Ingredient { val shelfLife: Int }
Scala
val ingredients: Array[Ingredient]

val (eatNow, eatLater) = ingredients.partition(i => i.shelfLife < 7)
Partition takes a function as its argument
def partition(p: Int => Boolean)
DEMYSTIFYING SCALA @KELLEYROBINSON
These are equivalent
partition(i => i.shelfLife < 7)
partition(_.shelfLife < 7)
underscore is a convenience operator
DEMYSTIFYING SCALA @KELLEYROBINSON
Why Scala
How to get started
Introduction to Scala
DEMYSTIFYING SCALA
http://downloads.typesafe.com/website/casestudies/Sharethrough-Case-Study-v1.0.pdf
@KELLEYROBINSON
DEMYSTIFYING SCALA @KELLEYROBINSON
“Sharethrough developers were quickly
productive with Scala, which can be
attributed to their familiarity with Java,
Scala’s expressiveness and lack of
boilerplate code.”
DEMYSTIFYING SCALA @KELLEYROBINSON
DEMYSTIFYING SCALA
https://twitter.com/kelleyrobinson/status/820426791433039872
@KELLEYROBINSON
DEMYSTIFYING SCALA @KELLEYROBINSON
DEMYSTIFYING SCALA @KELLEYROBINSON
DEMYSTIFYING SCALA @KELLEYROBINSON
https://meta.plasm.us/posts/2015/07/11/roll-your-own-scala/
Flexibility
requires
discipline
DEMYSTIFYING SCALA @KELLEYROBINSON
DEMYSTIFYING SCALA
https://twitter.com/chanian/status/462103684281671681
@KELLEYROBINSON
Sad truths
about Scala
DEMYSTIFYING SCALA @KELLEYROBINSON
DEMYSTIFYING SCALA @KELLEYROBINSON
Scala Functional Spectrum
Java Haskell
Sad truths about Scala
DEMYSTIFYING SCALA @KELLEYROBINSON
Sad truths about Scala
DEMYSTIFYING SCALA
Sad truths about Scala
@KELLEYROBINSON
// source code yikes
object Task {

implicit val taskInstance:
Nondeterminism[Task] with Catchable[Task]
with MonadError[({type λ[α,β] =
Task[β]})#λ,Throwable] = new
Nondeterminism[Task] with Catchable[Task]
with MonadError[({type λ[α,β] =
Task[β]})#λ,Throwable] { ... }
}
DEMYSTIFYING SCALA @KELLEYROBINSON
These are equivalent
partition(i => i.shelfLife < 7)
partition(_.shelfLife < 7)
underscore is a convenience operator
DEMYSTIFYING SCALA @KELLEYROBINSON
Symbolic operators
// this is valid code
def @*%--@&#&(foo: String): String = foo
// exists for this purpose
def +(s1: String, s2: String): String = s1.concat(s2)
“Modern” Functional
Programming is
cluttered with jargon
Sad truths about Scala
DEMYSTIFYING SCALA @KELLEYROBINSON
Scala is still
pretty awesome
DEMYSTIFYING SCALA @KELLEYROBINSON
Scala is still
pretty awesome
• Powerful
• Flexible
• Creative
DEMYSTIFYING SCALA @KELLEYROBINSON
DEMYSTIFYING SCALA @KELLEYROBINSON
Why Scala
How to get started
Introduction to Scala
Scala REPL
Core Language
https://www.scala-lang.org/download/install.html
@KELLEYROBINSONDEMYSTIFYING SCALA
DEMYSTIFYING SCALA @KELLEYROBINSON
Functional
Programming
Principles in Scala
Scala Center + Coursera
https://www.coursera.org/learn/progfun1
Scala Exercises
47 Degrees
https://www.scala-exercises.org/scala_tutorial/terms_and_types
@KELLEYROBINSONDEMYSTIFYING SCALA
ScalaBridge
Introductory programming
workshops for underrepresented
groups
• Curriculum is free and open source
• Teaching is a great way to learn
https://scalabridge.gitbooks.io/curriculum/content/setup/setup.html
$
@KELLEYROBINSONDEMYSTIFYING SCALA
• Don’t be intimidated
• Have fun
• Be disciplined
@KELLEYROBINSONDEMYSTIFYING SCALA
Thank You!
@kelleyrobinson
hello@krobinson.me

More Related Content

Similar to Demystifying Scala with Kelley Robinson

Selenium-online-training
Selenium-online-trainingSelenium-online-training
Selenium-online-trainingRaghav Arora
 
Refactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 RecapRefactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 RecapDave Orme
 
Learn scala and it's componenents learn it
Learn scala and it's componenents learn itLearn scala and it's componenents learn it
Learn scala and it's componenents learn itsiddharth30121
 
A Brief, but Dense, Intro to Scala
A Brief, but Dense, Intro to ScalaA Brief, but Dense, Intro to Scala
A Brief, but Dense, Intro to ScalaDerek Chen-Becker
 
Scala in a wild enterprise
Scala in a wild enterpriseScala in a wild enterprise
Scala in a wild enterpriseRafael Bagmanov
 
Property-Based Testing for Services
Property-Based Testing for ServicesProperty-Based Testing for Services
Property-Based Testing for Servicesjessitron
 
Why Functional Programming So Hard?
Why Functional Programming So Hard?Why Functional Programming So Hard?
Why Functional Programming So Hard?Ilya Sidorov
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With LiquibaseIASA
 
Agile Database Development with Liquibase
Agile Database Development with LiquibaseAgile Database Development with Liquibase
Agile Database Development with LiquibaseTim Berglund
 
What’s New in Rails 5.0?
What’s New in Rails 5.0?What’s New in Rails 5.0?
What’s New in Rails 5.0?Unboxed
 
Scala final ppt vinay
Scala final ppt vinayScala final ppt vinay
Scala final ppt vinayViplav Jain
 
Scala Programming Introduction
Scala Programming IntroductionScala Programming Introduction
Scala Programming IntroductionairisData
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 
WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD?
WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD? WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD?
WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD? reactima
 
Building Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaBuilding Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaWO Community
 

Similar to Demystifying Scala with Kelley Robinson (20)

Selenium-online-training
Selenium-online-trainingSelenium-online-training
Selenium-online-training
 
Refactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 RecapRefactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 Recap
 
Learn scala and it's componenents learn it
Learn scala and it's componenents learn itLearn scala and it's componenents learn it
Learn scala and it's componenents learn it
 
A Brief, but Dense, Intro to Scala
A Brief, but Dense, Intro to ScalaA Brief, but Dense, Intro to Scala
A Brief, but Dense, Intro to Scala
 
Scala in a wild enterprise
Scala in a wild enterpriseScala in a wild enterprise
Scala in a wild enterprise
 
Property-Based Testing for Services
Property-Based Testing for ServicesProperty-Based Testing for Services
Property-Based Testing for Services
 
Scala introduction
Scala introductionScala introduction
Scala introduction
 
slides-students-C03.pdf
slides-students-C03.pdfslides-students-C03.pdf
slides-students-C03.pdf
 
Why Functional Programming So Hard?
Why Functional Programming So Hard?Why Functional Programming So Hard?
Why Functional Programming So Hard?
 
Database Refactoring With Liquibase
Database Refactoring With LiquibaseDatabase Refactoring With Liquibase
Database Refactoring With Liquibase
 
Agile Database Development with Liquibase
Agile Database Development with LiquibaseAgile Database Development with Liquibase
Agile Database Development with Liquibase
 
What’s New in Rails 5.0?
What’s New in Rails 5.0?What’s New in Rails 5.0?
What’s New in Rails 5.0?
 
Scala final ppt vinay
Scala final ppt vinayScala final ppt vinay
Scala final ppt vinay
 
Scala Programming Introduction
Scala Programming IntroductionScala Programming Introduction
Scala Programming Introduction
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Scala active record
Scala active recordScala active record
Scala active record
 
WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD?
WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD? WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD?
WHY JAVASCRIPT FUNCTIONAL PROGRAMMING IS SO HARD?
 
Devoxx
DevoxxDevoxx
Devoxx
 
Scala in a nutshell
Scala in a nutshellScala in a nutshell
Scala in a nutshell
 
Building Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with ScalaBuilding Concurrent WebObjects applications with Scala
Building Concurrent WebObjects applications with Scala
 

More from Kelley Robinson

Protecting your phone verification flow from fraud & abuse
Protecting your phone verification flow from fraud & abuseProtecting your phone verification flow from fraud & abuse
Protecting your phone verification flow from fraud & abuseKelley Robinson
 
Preventing phone verification fraud (SMS pumping)
Preventing phone verification fraud (SMS pumping)Preventing phone verification fraud (SMS pumping)
Preventing phone verification fraud (SMS pumping)Kelley Robinson
 
Auth on the web: better authentication
Auth on the web: better authenticationAuth on the web: better authentication
Auth on the web: better authenticationKelley Robinson
 
Introduction to Public Key Cryptography
Introduction to Public Key CryptographyIntroduction to Public Key Cryptography
Introduction to Public Key CryptographyKelley Robinson
 
Identiverse 2020 - Account Recovery with 2FA
Identiverse 2020 - Account Recovery with 2FAIdentiverse 2020 - Account Recovery with 2FA
Identiverse 2020 - Account Recovery with 2FAKelley Robinson
 
Designing customer account recovery in a 2FA world
Designing customer account recovery in a 2FA worldDesigning customer account recovery in a 2FA world
Designing customer account recovery in a 2FA worldKelley Robinson
 
Introduction to SHAKEN/STIR
Introduction to SHAKEN/STIRIntroduction to SHAKEN/STIR
Introduction to SHAKEN/STIRKelley Robinson
 
Building a Better Scala Community
Building a Better Scala CommunityBuilding a Better Scala Community
Building a Better Scala CommunityKelley Robinson
 
BSides SF - Contact Center Authentication
BSides SF - Contact Center AuthenticationBSides SF - Contact Center Authentication
BSides SF - Contact Center AuthenticationKelley Robinson
 
Communication @ Startups
Communication @ StartupsCommunication @ Startups
Communication @ StartupsKelley Robinson
 
Contact Center Authentication
Contact Center AuthenticationContact Center Authentication
Contact Center AuthenticationKelley Robinson
 
Authentication Beyond SMS
Authentication Beyond SMSAuthentication Beyond SMS
Authentication Beyond SMSKelley Robinson
 
BSides PDX - Threat Modeling Authentication
BSides PDX - Threat Modeling AuthenticationBSides PDX - Threat Modeling Authentication
BSides PDX - Threat Modeling AuthenticationKelley Robinson
 
SIGNAL - Practical Cryptography
SIGNAL - Practical CryptographySIGNAL - Practical Cryptography
SIGNAL - Practical CryptographyKelley Robinson
 

More from Kelley Robinson (20)

Protecting your phone verification flow from fraud & abuse
Protecting your phone verification flow from fraud & abuseProtecting your phone verification flow from fraud & abuse
Protecting your phone verification flow from fraud & abuse
 
Preventing phone verification fraud (SMS pumping)
Preventing phone verification fraud (SMS pumping)Preventing phone verification fraud (SMS pumping)
Preventing phone verification fraud (SMS pumping)
 
Auth on the web: better authentication
Auth on the web: better authenticationAuth on the web: better authentication
Auth on the web: better authentication
 
WebAuthn
WebAuthnWebAuthn
WebAuthn
 
Introduction to Public Key Cryptography
Introduction to Public Key CryptographyIntroduction to Public Key Cryptography
Introduction to Public Key Cryptography
 
2FA in 2020 and Beyond
2FA in 2020 and Beyond2FA in 2020 and Beyond
2FA in 2020 and Beyond
 
Identiverse 2020 - Account Recovery with 2FA
Identiverse 2020 - Account Recovery with 2FAIdentiverse 2020 - Account Recovery with 2FA
Identiverse 2020 - Account Recovery with 2FA
 
Designing customer account recovery in a 2FA world
Designing customer account recovery in a 2FA worldDesigning customer account recovery in a 2FA world
Designing customer account recovery in a 2FA world
 
Introduction to SHAKEN/STIR
Introduction to SHAKEN/STIRIntroduction to SHAKEN/STIR
Introduction to SHAKEN/STIR
 
Intro to SHAKEN/STIR
Intro to SHAKEN/STIRIntro to SHAKEN/STIR
Intro to SHAKEN/STIR
 
PSD2, SCA, WTF?
PSD2, SCA, WTF?PSD2, SCA, WTF?
PSD2, SCA, WTF?
 
Building a Better Scala Community
Building a Better Scala CommunityBuilding a Better Scala Community
Building a Better Scala Community
 
BSides SF - Contact Center Authentication
BSides SF - Contact Center AuthenticationBSides SF - Contact Center Authentication
BSides SF - Contact Center Authentication
 
Communication @ Startups
Communication @ StartupsCommunication @ Startups
Communication @ Startups
 
Contact Center Authentication
Contact Center AuthenticationContact Center Authentication
Contact Center Authentication
 
Authentication Beyond SMS
Authentication Beyond SMSAuthentication Beyond SMS
Authentication Beyond SMS
 
BSides PDX - Threat Modeling Authentication
BSides PDX - Threat Modeling AuthenticationBSides PDX - Threat Modeling Authentication
BSides PDX - Threat Modeling Authentication
 
SIGNAL - Practical Cryptography
SIGNAL - Practical CryptographySIGNAL - Practical Cryptography
SIGNAL - Practical Cryptography
 
2FA Best Practices
2FA Best Practices2FA Best Practices
2FA Best Practices
 
Practical Cryptography
Practical CryptographyPractical Cryptography
Practical Cryptography
 

Recently uploaded

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 

Recently uploaded (20)

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 

Demystifying Scala with Kelley Robinson