SlideShare a Scribd company logo
2specsGo functional!
Shame
Mutability
Concurrency
Acceptance
WhyThe ideaUserProgramDesign
Go Functional!But what is it?!
Referential transparency Immutability
Processing data structuresFPOOpipelinedemergentbehaviorbehavior
WhyThe ideaUserProgramDesign
Starting point
NestingPrecedence:+!^
FormattingTextExampleTextExampleExample
Formattingpbrendt, t(i)bt, bt(i)acceptance
Context
doBeforewithDb.apply(e2)
WhyThe ideaUserProgramDesign
Runsequenceto textlevelsto htmlargumentsselectstatisticsexecute
Laziness vs evaluation
Iterating
Traversethe mappingA datastructure to traversethe accumulation
Applicative magic?simpleLots of instances: State
 List
 Monad
MonoidType inference is hard,Let’s go shopping!composable
Reduceraggregationmappingspecs2 reducers: Levels
 Statistics
 Arguments
 Text
 Html“parallel” composition
WhyThe ideaUserProgramDesign
TreesSuiteDescriptionTextTest Description 1Test Description 2Example 1Example 2SuiteDescriptionfChildren = TD1, TD2
TreeLoc
TreeLoc<body><h1>Title 1</h1><h2>part 1</h2><h2>part 2</h2><h1/></body><h2/><h2/>Anti-XMLThe non-violent solution
Concurrency=> Promise[Seq[ExecutedFragment]]a concurrent task
Exceptions

More Related Content

Similar to Specs2 (20)

PPTX
Specs2, go functional
specs2
 
PDF
"Introduction to F#" - South Dakota Code Camp, November 5, 2011
Blend Interactive
 
PDF
Functional Programming in Scala 1st Edition Paul Chiusano
sturledemsar
 
PPTX
Specs2 - Scala-Syd presentation
Eric Torreborre
 
PDF
Thinking Functionally
Piyush Katariya
 
PPTX
Why functional programming in C# & F#
Riccardo Terrell
 
PDF
If You Think You Can Stay Away from Functional Programming, You Are Wrong
Mario Fusco
 
PDF
Functional Programming in Scala 1st Edition Paul Chiusano
apmqkgj762
 
PDF
Introduction to Functional Programming
Hoàng Lâm Huỳnh
 
PPTX
Functional Programming
Ryan Riley
 
KEY
Exciting JavaScript - Part II
Eugene Lazutkin
 
PPTX
Functional programming
Prateek Jain
 
PDF
Buy ebook Functional Reactive Programming 1st Edition Stephen Blackheath chea...
wongazarok
 
PDF
Beyond PITS, Functional Principles for Software Architecture
Jayaram Sankaranarayanan
 
PDF
Introduction to functional programming
Thang Mai
 
PDF
JSDC 2014 - functional java script, why or why not
ChengHui Weng
 
PDF
Twins: Object Oriented Programming and Functional Programming
RichardWarburton
 
PPTX
Introduction to F#
Jonas Follesø
 
PDF
Testing concurrent java programs - Sameer Arora
IndicThreads
 
PDF
Functional programming
ijcd
 
Specs2, go functional
specs2
 
"Introduction to F#" - South Dakota Code Camp, November 5, 2011
Blend Interactive
 
Functional Programming in Scala 1st Edition Paul Chiusano
sturledemsar
 
Specs2 - Scala-Syd presentation
Eric Torreborre
 
Thinking Functionally
Piyush Katariya
 
Why functional programming in C# & F#
Riccardo Terrell
 
If You Think You Can Stay Away from Functional Programming, You Are Wrong
Mario Fusco
 
Functional Programming in Scala 1st Edition Paul Chiusano
apmqkgj762
 
Introduction to Functional Programming
Hoàng Lâm Huỳnh
 
Functional Programming
Ryan Riley
 
Exciting JavaScript - Part II
Eugene Lazutkin
 
Functional programming
Prateek Jain
 
Buy ebook Functional Reactive Programming 1st Edition Stephen Blackheath chea...
wongazarok
 
Beyond PITS, Functional Principles for Software Architecture
Jayaram Sankaranarayanan
 
Introduction to functional programming
Thang Mai
 
JSDC 2014 - functional java script, why or why not
ChengHui Weng
 
Twins: Object Oriented Programming and Functional Programming
RichardWarburton
 
Introduction to F#
Jonas Follesø
 
Testing concurrent java programs - Sameer Arora
IndicThreads
 
Functional programming
ijcd
 

More from Eric Torreborre (20)

PDF
Shoehorning dependency injection into a FP language
Eric Torreborre
 
PDF
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
PDF
Boost your command line applications with potions!
Eric Torreborre
 
PDF
wire-all-the-things-lambda-days-2023.pdf
Eric Torreborre
 
PDF
The many faces of modularity
Eric Torreborre
 
PDF
What haskell taught us when we were not looking
Eric Torreborre
 
PDF
Wire once, rewire twice! (Haskell exchange-2018)
Eric Torreborre
 
PDF
Pratical eff-functional-conf
Eric Torreborre
 
PDF
Specs2, from starters to dessert and... a look in the kitchen
Eric Torreborre
 
PDF
Streaming, effects and beautiful folds: a winning trilogy
Eric Torreborre
 
PPTX
Pratical eff-scalaitaly-2017
Eric Torreborre
 
PDF
Pratical eff monad at Scaladays Chicago
Eric Torreborre
 
PDF
Pratical eff
Eric Torreborre
 
PPT
The Eff monad, one monad to rule them all
Eric Torreborre
 
PPT
Easy di-slideshare
Eric Torreborre
 
PPT
Data generation, the hard parts
Eric Torreborre
 
PPT
Origami, a monadic fold library for Scala
Eric Torreborre
 
PPT
Datatypes for the real world
Eric Torreborre
 
PPT
Specs2 3.4
Eric Torreborre
 
PPTX
DSLs with fold algebras
Eric Torreborre
 
Shoehorning dependency injection into a FP language
Eric Torreborre
 
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Boost your command line applications with potions!
Eric Torreborre
 
wire-all-the-things-lambda-days-2023.pdf
Eric Torreborre
 
The many faces of modularity
Eric Torreborre
 
What haskell taught us when we were not looking
Eric Torreborre
 
Wire once, rewire twice! (Haskell exchange-2018)
Eric Torreborre
 
Pratical eff-functional-conf
Eric Torreborre
 
Specs2, from starters to dessert and... a look in the kitchen
Eric Torreborre
 
Streaming, effects and beautiful folds: a winning trilogy
Eric Torreborre
 
Pratical eff-scalaitaly-2017
Eric Torreborre
 
Pratical eff monad at Scaladays Chicago
Eric Torreborre
 
Pratical eff
Eric Torreborre
 
The Eff monad, one monad to rule them all
Eric Torreborre
 
Easy di-slideshare
Eric Torreborre
 
Data generation, the hard parts
Eric Torreborre
 
Origami, a monadic fold library for Scala
Eric Torreborre
 
Datatypes for the real world
Eric Torreborre
 
Specs2 3.4
Eric Torreborre
 
DSLs with fold algebras
Eric Torreborre
 
Ad

Recently uploaded (20)

PDF
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
July Patch Tuesday
Ivanti
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Ad

Specs2