SlideShare a Scribd company logo
Why bother with FP?
Attempt at honest and backed by data answer
Tomasz Borek, 2015
More: https://github.com/LIttleAncientForestKami/why-bother-with-FP
Who am I?
@LAFK_pl
Consultant @
Tomasz Borek
FP is AWESOME!
● „Knowledge of FP is on the verge of becoming
a must-have skill” (DrDobbs)
● „If you don't know it you're not a REAL
programmer” (Devoxx UK 2014 discussion)
– Real Programmers vs Quiche Eaters
● „The smartest programmers I know are
functional programmers.” (Quora)
Why such talk?
FP?
„Mythical Man-Month”,
Frederick Brooks
What will I talk about?
● About myself and the talk
● Better, means?
● The usual claims you hear and data on them
● The not so usual claims, like „good OO”
● So, why bother?
Who here has read?
● Why FP matters
● Out of the Tar Pit
● Can programming be liberated from von
Neumann style?
SORRY!https://lafkblogs.wordpress.com/
2015/03/07/why-bother-with-fp/
https://github.com/LIttleAncientForestKami/why-bother-with-FP
MORE INFO
CONTRIBUTE
Better?
● Languages
● Designed with X in mind
● Is X better?
The usual claims
● It's the FUTURE / NEXT BIG thing
● Changes your thinking / another tool to have
● Shorter / terser code
● More power / Better abstractions / Convenient
● Complexity / State mutation
● Streams / no side-effects
● Reliability / proven
● Concurrency / Multicore
Define: FUTURE
● By fame
– conferences and conference talks
– articles
● By practicality
– market share
– who / where uses
– job offers
● By language popularity / adoption level
The FUTURE by fame
● Conferences?
– Lambda Days
– LambdaCon
– Strangeloop
● Articles:
– Even in mainstream portals
The FUTURE by practicality
● Market share
● Who / where uses
● Domains
● Quality / Quantity
● Job offers
Adoption level?
● Java 8 Lambdas
– Supposed to be in Java 7
● C++
● C#
● Python Clojures
● JVM: Clojure, Scala, etc.
● SQL – long ago
Language popularity
Language popularity in context
Language popularity in context 2
Language popularity: GitHub
Language popularity: GitHub 2
http://githut.info/
Language popularity: Tiobe
● Best source of data for language trends
● Contains:
– What grew most in a year
– Long range trends
– Very long range... (1985)
– Yearly index
● I looked at top 50 languages
Languages across 2014-2015
Place now Previously Language Ratings (%) Change (%)
1 1 C 16,488 -1,85
2 2 Java 15,345 -1,97
3 4 C++ 6,612 -0,28
4 3 Objective C 6,024 -5,32
5 5 C# 5,738 -0,71
6 9 JavaScript 3,514 1,58
7 6 PHP 3,170 -1,05
8 8 Python 2,882 0,72
9 10 VB.NET 2,026 0,23
10 - VB 1,718 1,72
Tiobe ratings
● Query: +"<language> programming"
● 25 search engines
● „The counted hits are normalized for each
search engine for all languages in the list.”
– All languages in the list add up to 100%
● Confidence factor says how many results we
take in (filtering)
FP languages @ Tiobe
● Currently none makes it past 14th place (F#)
● None became „Programming Language of the
Year” (at least not since 2003)
● They hold > 1% rating, except for F#'s 1,179%
● Reigning languages are still C and Java.
● A number didn't made it to top 50 (Erlang)
Summarizing fame
● On the rise – yes
● Dominating, must have – no
– Including the startup advantage somewhat
– Not strong enough market share
– There are some backers though
Thought-bending / Another tool
● General truth:
– Learning shapes mind
– We think in patterns
● Number of personal statements
– „I learned Haskell and I suffer”
– SO questions
● First language FP vs imperative (universities)
● Number of authority statements
– Including from different fields (Miyamoto Musashi)
Shorter / terser code
● No FP book / tutorial / FAQ I found had data
– One or two examples
– „Usually leads to”, „Most of the times it has”
● Examples are just examples
● No studies to prove the claim
● Is shorter really better? (Hint: APL)
● Sometimes used as in...
More power
● More power
● Better expressive power
● Better abstractions
● Convenient for the programmer
● Paul Graham: Blub Paradox
– Ties with „makes you think differently”
The Blub Paradox
● „Programming languages vary in power”
● Who uses Assembly now?
● Blub – middle of language power axis
– Less powerful is obvious
– More powerful is weird
● Why don't you use most powerful language?
– Comfort zone
– Experience
Less bugs!
● Complexity
– Accidental
– Essential
● State = state mutation vs immutability
● Referential transparency, aka no (little) side-
effects
● Papers: yes, studies: no
You can reason about it (algebra of programs)
You can reason about it (algebra of programs)
But you won't
Solves multicore problem
● Immutable
● Less state, less deadlocks
● Referential transparency, aka no side-effects
● Impure things can be contained within pure
(monads)
● Papers: yes, studies: no
Unusual claims
● Hybrid approaches
● How good OOP works similarly to FP
Summarizing
● What is logical, can be inferred:
– Concurrency
– Complexity
● What you can back up with data
– Prooving it (Coq, Yoneda lemma, program algebra)
● What you can argue:
– Power, expresiveness
– Gives you another perspective, changes thinking
● Not really: terser code, market share, popular...
How I see it
● Concurrency is easier
● Less state = less worries
● Makes you into a better programmer
● Streams make for a better thought-flow
● You can reason about it, but will you?
● Yes, on the rise, but not a „must-have”
● More power... well
So, why bother?
Your case, you tell me!
Version 1, WIP
● Work in progress: sorry!
● Next installments: March!
● Info page on my blog:
● Contribute (pull-requests welcome):
https://lafkblogs.wordpress.com/2015/03/07/why-bother-with-fp/
https://github.com/LIttleAncientForestKami/why-bother-with-FP

More Related Content

Viewers also liked

Patterns for JVM languages - Geecon 2014
Patterns for JVM languages - Geecon 2014Patterns for JVM languages - Geecon 2014
Patterns for JVM languages - Geecon 2014
Jaroslaw Palka
 
Patterns for organic architecture
Patterns for organic architecturePatterns for organic architecture
Patterns for organic architecture
Jaroslaw Palka
 
Sistema nervioso autonomo
Sistema nervioso autonomoSistema nervioso autonomo
Sistema nervioso autonomo
Sof2
 
History of fast food in usa
History of fast food in usaHistory of fast food in usa
History of fast food in usa
eretumm
 

Viewers also liked (16)

Ukraine, Europe, Russia and V for Freedom
Ukraine, Europe, Russia and V for FreedomUkraine, Europe, Russia and V for Freedom
Ukraine, Europe, Russia and V for Freedom
 
Patterns for JVM languages - Geecon 2014
Patterns for JVM languages - Geecon 2014Patterns for JVM languages - Geecon 2014
Patterns for JVM languages - Geecon 2014
 
Patterns for organic architecture
Patterns for organic architecturePatterns for organic architecture
Patterns for organic architecture
 
I'm in ur browser, pwning your stuff - Attacking (with) Google Chrome Extensions
I'm in ur browser, pwning your stuff - Attacking (with) Google Chrome ExtensionsI'm in ur browser, pwning your stuff - Attacking (with) Google Chrome Extensions
I'm in ur browser, pwning your stuff - Attacking (with) Google Chrome Extensions
 
Killer product - how to make your product noticeable and used by people
Killer product - how to make your product noticeable and used by peopleKiller product - how to make your product noticeable and used by people
Killer product - how to make your product noticeable and used by people
 
Jenkins 20
Jenkins 20Jenkins 20
Jenkins 20
 
The changing picture of poverty in the UK - Why we need to act now
The changing picture of poverty in the UK - Why we need to act nowThe changing picture of poverty in the UK - Why we need to act now
The changing picture of poverty in the UK - Why we need to act now
 
Sistema nervioso autonomo
Sistema nervioso autonomoSistema nervioso autonomo
Sistema nervioso autonomo
 
Aprovechamiento de pérdidas postcosechas
Aprovechamiento de pérdidas postcosechasAprovechamiento de pérdidas postcosechas
Aprovechamiento de pérdidas postcosechas
 
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
 
Tarea3 de informatiaca aplicada a la educacion
Tarea3 de informatiaca aplicada a la educacionTarea3 de informatiaca aplicada a la educacion
Tarea3 de informatiaca aplicada a la educacion
 
Monitoring poverty and social exclusion
Monitoring poverty and social exclusionMonitoring poverty and social exclusion
Monitoring poverty and social exclusion
 
Internet de los alimentos
Internet de los alimentos Internet de los alimentos
Internet de los alimentos
 
History of fast food in usa
History of fast food in usaHistory of fast food in usa
History of fast food in usa
 
Taller diseño de plantas
Taller diseño de plantasTaller diseño de plantas
Taller diseño de plantas
 
Fusades condena espionaje contra Cámara de Comercio e Industria de El Salvador
Fusades condena espionaje contra Cámara de Comercio e Industria de El SalvadorFusades condena espionaje contra Cámara de Comercio e Industria de El Salvador
Fusades condena espionaje contra Cámara de Comercio e Industria de El Salvador
 

More from Tomek Borek

Architecture visualizers - tools usability study
Architecture visualizers - tools usability studyArchitecture visualizers - tools usability study
Architecture visualizers - tools usability study
Tomek Borek
 
Meta on HCI - keyword analysis and trends
Meta on HCI - keyword analysis and trendsMeta on HCI - keyword analysis and trends
Meta on HCI - keyword analysis and trends
Tomek Borek
 

More from Tomek Borek (20)

Noc informatyka - co ja wiem o testowaniu
Noc informatyka - co ja wiem  o testowaniuNoc informatyka - co ja wiem  o testowaniu
Noc informatyka - co ja wiem o testowaniu
 
Teaching PostgreSQL to new people
Teaching PostgreSQL to new peopleTeaching PostgreSQL to new people
Teaching PostgreSQL to new people
 
Nowoczesne architektury
Nowoczesne architekturyNowoczesne architektury
Nowoczesne architektury
 
Java tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy devJava tuning on GNU/Linux for busy dev
Java tuning on GNU/Linux for busy dev
 
Jvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUGJvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUG
 
Java Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and contextJava Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and context
 
Seeing through the smoke
Seeing through the smokeSeeing through the smoke
Seeing through the smoke
 
AR drone - Polish JUG short demo
AR drone - Polish JUG short demoAR drone - Polish JUG short demo
AR drone - Polish JUG short demo
 
Testing SAAS, how to go about it?
Testing SAAS, how to go about it?Testing SAAS, how to go about it?
Testing SAAS, how to go about it?
 
Spróbujmy szczęścia bo zaciskanie pięści nie działa
Spróbujmy szczęścia bo zaciskanie pięści nie działaSpróbujmy szczęścia bo zaciskanie pięści nie działa
Spróbujmy szczęścia bo zaciskanie pięści nie działa
 
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
 
Lightning talk on Java Memory Consistency Model Java Day Kiev 2014
Lightning talk on Java Memory Consistency Model Java Day Kiev 2014Lightning talk on Java Memory Consistency Model Java Day Kiev 2014
Lightning talk on Java Memory Consistency Model Java Day Kiev 2014
 
Few words about happiness (Polish talk) / O szczęściu słów kilka
Few words about happiness (Polish talk) / O szczęściu słów kilkaFew words about happiness (Polish talk) / O szczęściu słów kilka
Few words about happiness (Polish talk) / O szczęściu słów kilka
 
Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"
Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"
Jak użytecznie, prawdziwie i solidnie odpowiedzieć na pytanie "jak było"
 
It's not always the application's fault
It's not always the application's faultIt's not always the application's fault
It's not always the application's fault
 
To nie zawsze wina aplikacji!
To nie zawsze wina aplikacji!To nie zawsze wina aplikacji!
To nie zawsze wina aplikacji!
 
Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...
Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...
Wprowadzenie do optymalizacji wielokryterialnej / Intro to multicriteria opti...
 
Git nie dla początkujących
Git nie dla początkującychGit nie dla początkujących
Git nie dla początkujących
 
Architecture visualizers - tools usability study
Architecture visualizers - tools usability studyArchitecture visualizers - tools usability study
Architecture visualizers - tools usability study
 
Meta on HCI - keyword analysis and trends
Meta on HCI - keyword analysis and trendsMeta on HCI - keyword analysis and trends
Meta on HCI - keyword analysis and trends
 

Recently uploaded

JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 

Recently uploaded (20)

Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 

Why bother with FP - Lambda Days, 1st version

  • 1. Why bother with FP? Attempt at honest and backed by data answer Tomasz Borek, 2015 More: https://github.com/LIttleAncientForestKami/why-bother-with-FP
  • 3. FP is AWESOME! ● „Knowledge of FP is on the verge of becoming a must-have skill” (DrDobbs) ● „If you don't know it you're not a REAL programmer” (Devoxx UK 2014 discussion) – Real Programmers vs Quiche Eaters ● „The smartest programmers I know are functional programmers.” (Quora)
  • 4. Why such talk? FP? „Mythical Man-Month”, Frederick Brooks
  • 5. What will I talk about? ● About myself and the talk ● Better, means? ● The usual claims you hear and data on them ● The not so usual claims, like „good OO” ● So, why bother?
  • 6. Who here has read? ● Why FP matters ● Out of the Tar Pit ● Can programming be liberated from von Neumann style?
  • 8. Better? ● Languages ● Designed with X in mind ● Is X better?
  • 9. The usual claims ● It's the FUTURE / NEXT BIG thing ● Changes your thinking / another tool to have ● Shorter / terser code ● More power / Better abstractions / Convenient ● Complexity / State mutation ● Streams / no side-effects ● Reliability / proven ● Concurrency / Multicore
  • 10. Define: FUTURE ● By fame – conferences and conference talks – articles ● By practicality – market share – who / where uses – job offers ● By language popularity / adoption level
  • 11. The FUTURE by fame ● Conferences? – Lambda Days – LambdaCon – Strangeloop ● Articles: – Even in mainstream portals
  • 12. The FUTURE by practicality ● Market share ● Who / where uses ● Domains ● Quality / Quantity ● Job offers
  • 13. Adoption level? ● Java 8 Lambdas – Supposed to be in Java 7 ● C++ ● C# ● Python Clojures ● JVM: Clojure, Scala, etc. ● SQL – long ago
  • 18. Language popularity: GitHub 2 http://githut.info/
  • 19. Language popularity: Tiobe ● Best source of data for language trends ● Contains: – What grew most in a year – Long range trends – Very long range... (1985) – Yearly index ● I looked at top 50 languages
  • 20. Languages across 2014-2015 Place now Previously Language Ratings (%) Change (%) 1 1 C 16,488 -1,85 2 2 Java 15,345 -1,97 3 4 C++ 6,612 -0,28 4 3 Objective C 6,024 -5,32 5 5 C# 5,738 -0,71 6 9 JavaScript 3,514 1,58 7 6 PHP 3,170 -1,05 8 8 Python 2,882 0,72 9 10 VB.NET 2,026 0,23 10 - VB 1,718 1,72
  • 21. Tiobe ratings ● Query: +"<language> programming" ● 25 search engines ● „The counted hits are normalized for each search engine for all languages in the list.” – All languages in the list add up to 100% ● Confidence factor says how many results we take in (filtering)
  • 22. FP languages @ Tiobe ● Currently none makes it past 14th place (F#) ● None became „Programming Language of the Year” (at least not since 2003) ● They hold > 1% rating, except for F#'s 1,179% ● Reigning languages are still C and Java. ● A number didn't made it to top 50 (Erlang)
  • 23.
  • 24. Summarizing fame ● On the rise – yes ● Dominating, must have – no – Including the startup advantage somewhat – Not strong enough market share – There are some backers though
  • 25. Thought-bending / Another tool ● General truth: – Learning shapes mind – We think in patterns ● Number of personal statements – „I learned Haskell and I suffer” – SO questions ● First language FP vs imperative (universities) ● Number of authority statements – Including from different fields (Miyamoto Musashi)
  • 26. Shorter / terser code ● No FP book / tutorial / FAQ I found had data – One or two examples – „Usually leads to”, „Most of the times it has” ● Examples are just examples ● No studies to prove the claim ● Is shorter really better? (Hint: APL) ● Sometimes used as in...
  • 27. More power ● More power ● Better expressive power ● Better abstractions ● Convenient for the programmer ● Paul Graham: Blub Paradox – Ties with „makes you think differently”
  • 28. The Blub Paradox ● „Programming languages vary in power” ● Who uses Assembly now? ● Blub – middle of language power axis – Less powerful is obvious – More powerful is weird ● Why don't you use most powerful language? – Comfort zone – Experience
  • 29. Less bugs! ● Complexity – Accidental – Essential ● State = state mutation vs immutability ● Referential transparency, aka no (little) side- effects ● Papers: yes, studies: no
  • 30. You can reason about it (algebra of programs)
  • 31. You can reason about it (algebra of programs) But you won't
  • 32. Solves multicore problem ● Immutable ● Less state, less deadlocks ● Referential transparency, aka no side-effects ● Impure things can be contained within pure (monads) ● Papers: yes, studies: no
  • 33. Unusual claims ● Hybrid approaches ● How good OOP works similarly to FP
  • 34. Summarizing ● What is logical, can be inferred: – Concurrency – Complexity ● What you can back up with data – Prooving it (Coq, Yoneda lemma, program algebra) ● What you can argue: – Power, expresiveness – Gives you another perspective, changes thinking ● Not really: terser code, market share, popular...
  • 35. How I see it ● Concurrency is easier ● Less state = less worries ● Makes you into a better programmer ● Streams make for a better thought-flow ● You can reason about it, but will you? ● Yes, on the rise, but not a „must-have” ● More power... well
  • 36. So, why bother? Your case, you tell me!
  • 37. Version 1, WIP ● Work in progress: sorry! ● Next installments: March! ● Info page on my blog: ● Contribute (pull-requests welcome): https://lafkblogs.wordpress.com/2015/03/07/why-bother-with-fp/ https://github.com/LIttleAncientForestKami/why-bother-with-FP