SlideShare a Scribd company logo
1 of 25
Download to read offline
Start You a Haskell
for Great Good!
What Haskell?
–Wikipedia
Haskell is a standardized, general-purpose
purely functional programming language, with
non-strict semantics and strong static typing.
standardized
Haskell and its core libraries conform to a
language specification.
The Glasgow Haskell Compiler supports both
Haskell 98 and Haskell 2010.
https://wiki.haskell.org/Language_and_library_specification
general-purpose
Haskell does it all.
http://www.devalot.com/topics/haskell.html
purely functional
Functions in Haskell are idempotent: they yield the
same value consistently for each input.
Special constructs are used to segregate code
that changes state or produces side effects.
http://stackoverflow.com/questions/4382223/pure-functional-language-haskell
non-strict semantics
Haskell is lazy:
nothing is evaluated until it is needed.
https://wiki.haskell.org/Why_Haskell_matters#Laziness
strong static typing
Types are checked at compile-time.
Types are inferred and do not need to be stated.
Type classes generalize behavior among types.
You can easily define your own types.
http://www.well-typed.com/blog/91/
Why Haskell?
–Tikhon Jelvis, Quora contributor
Haskell can teach you advanced
functional programming in a way no other
common languages can.
http://www.quora.com/Which-power-programming-language-should-I-put-the-effort-into-learning-this-year-Clojure-or-Haskell
–Aaron Contorer, founder of FP Complete and former Microsoft exec
Haskell is highly regarded for its ability to transform the way
developers think about programming. Many developers
have told us they never really saw the holes in the imperative
languages they were using until they started using Haskell.
http://www.huffingtonpost.com/aaroncontorer/haskell-the-language-most_b_4242119.html
–jamwt, HN commenter
If you satisfy the type system, a shockingly high
percentage of the time your program is just flat
out correct the first time you run it.
https://news.ycombinator.com/item?id=2413816
–clrnd, Haskell redditor
I discovered that almost everything can be composable; I can have
a thousand computations that may fail, run them in parallel trivially
and still catch all those errors in a single line…I learnt that
concurrency can…actually make things faster without adding
unnecessary complexity. I learnt how rich types can give structure,
meaning and modularity to a piece of code (almost) for free.
http://www.reddit.com/r/haskell/comments/2mr7ks/im_debating_between_haskell_and_clojure_xpost/
–Chris Allen (bitemyapp), Meditations on Learning Haskell
I use Haskell because I want to be able to refactor
without fear, because I want maintenance to be
something I don’t resent. So I can reuse code freely.
How Haskell?
OS X
https://ghcformacosx.github.io/
Linux
& Windows
https://www.haskell.org/platform/
learn
• Real World Haskell
• Learn You a Haskell for Great
Good!
• 99 Problems in Haskell
• exercism.io
• experiment in GHCi
• docs and source on Hackage
haskell-vim-now
github.com/begriffs/haskell-vim-now
Now Haskell!
@amar47shah
github.com/amar47shah
Thanks!
Rainbow Dash images by RichHap
http://richhap.deviantart.com/

More Related Content

Similar to Start You a Haskell (for Great Good)!

Лев Валкин — Программируем функционально
Лев Валкин — Программируем функциональноЛев Валкин — Программируем функционально
Лев Валкин — Программируем функционально
Daria Oreshkina
 
Diving into Functional Programming
Diving into Functional ProgrammingDiving into Functional Programming
Diving into Functional Programming
Lev Walkin
 
An introduction on language processing
An introduction on language processingAn introduction on language processing
An introduction on language processing
Ralf Laemmel
 
Xaml Guidelines Draft0
Xaml Guidelines Draft0Xaml Guidelines Draft0
Xaml Guidelines Draft0
guest27165
 
Programming Languages - Functional Programming Paper
Programming Languages - Functional Programming PaperProgramming Languages - Functional Programming Paper
Programming Languages - Functional Programming Paper
Shreya Chakrabarti
 

Similar to Start You a Haskell (for Great Good)! (20)

Stay fresh
Stay freshStay fresh
Stay fresh
 
Functional programming seminar (haskell)
Functional programming seminar (haskell)Functional programming seminar (haskell)
Functional programming seminar (haskell)
 
Лев Валкин — Программируем функционально
Лев Валкин — Программируем функциональноЛев Валкин — Программируем функционально
Лев Валкин — Программируем функционально
 
Principled io in_scala_2019_distribution
Principled io in_scala_2019_distributionPrincipled io in_scala_2019_distribution
Principled io in_scala_2019_distribution
 
Haskell a simple intro
Haskell a simple introHaskell a simple intro
Haskell a simple intro
 
Diving into Functional Programming
Diving into Functional ProgrammingDiving into Functional Programming
Diving into Functional Programming
 
An introduction on language processing
An introduction on language processingAn introduction on language processing
An introduction on language processing
 
ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in...
 ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in... ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in...
ABRIDGED VERSION - Joys & frustrations of putting 34,000 lines of Haskell in...
 
BayFP: Concurrent and Multicore Haskell
BayFP: Concurrent and Multicore HaskellBayFP: Concurrent and Multicore Haskell
BayFP: Concurrent and Multicore Haskell
 
An Introduction to Hamler
An Introduction to HamlerAn Introduction to Hamler
An Introduction to Hamler
 
Hack programming language
Hack programming languageHack programming language
Hack programming language
 
Hack Programming Language
Hack Programming LanguageHack Programming Language
Hack Programming Language
 
Algorithm2e package for Latex
Algorithm2e package for LatexAlgorithm2e package for Latex
Algorithm2e package for Latex
 
Xaml Guidelines Draft0
Xaml Guidelines Draft0Xaml Guidelines Draft0
Xaml Guidelines Draft0
 
Unixshellscript 100406085942-phpapp02
Unixshellscript 100406085942-phpapp02Unixshellscript 100406085942-phpapp02
Unixshellscript 100406085942-phpapp02
 
Programming Languages - Functional Programming Paper
Programming Languages - Functional Programming PaperProgramming Languages - Functional Programming Paper
Programming Languages - Functional Programming Paper
 
PHP 5
PHP 5PHP 5
PHP 5
 
Haskell Tour (Part 1)
Haskell Tour (Part 1)Haskell Tour (Part 1)
Haskell Tour (Part 1)
 
Applicative Functor - Part 2
Applicative Functor - Part 2Applicative Functor - Part 2
Applicative Functor - Part 2
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
 

Recently uploaded

CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

Start You a Haskell (for Great Good)!

  • 1. Start You a Haskell for Great Good!
  • 2.
  • 4. –Wikipedia Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing.
  • 5.
  • 6. standardized Haskell and its core libraries conform to a language specification. The Glasgow Haskell Compiler supports both Haskell 98 and Haskell 2010. https://wiki.haskell.org/Language_and_library_specification
  • 7. general-purpose Haskell does it all. http://www.devalot.com/topics/haskell.html
  • 8. purely functional Functions in Haskell are idempotent: they yield the same value consistently for each input. Special constructs are used to segregate code that changes state or produces side effects. http://stackoverflow.com/questions/4382223/pure-functional-language-haskell
  • 9. non-strict semantics Haskell is lazy: nothing is evaluated until it is needed. https://wiki.haskell.org/Why_Haskell_matters#Laziness
  • 10. strong static typing Types are checked at compile-time. Types are inferred and do not need to be stated. Type classes generalize behavior among types. You can easily define your own types. http://www.well-typed.com/blog/91/
  • 12.
  • 13. –Tikhon Jelvis, Quora contributor Haskell can teach you advanced functional programming in a way no other common languages can. http://www.quora.com/Which-power-programming-language-should-I-put-the-effort-into-learning-this-year-Clojure-or-Haskell
  • 14. –Aaron Contorer, founder of FP Complete and former Microsoft exec Haskell is highly regarded for its ability to transform the way developers think about programming. Many developers have told us they never really saw the holes in the imperative languages they were using until they started using Haskell. http://www.huffingtonpost.com/aaroncontorer/haskell-the-language-most_b_4242119.html
  • 15. –jamwt, HN commenter If you satisfy the type system, a shockingly high percentage of the time your program is just flat out correct the first time you run it. https://news.ycombinator.com/item?id=2413816
  • 16. –clrnd, Haskell redditor I discovered that almost everything can be composable; I can have a thousand computations that may fail, run them in parallel trivially and still catch all those errors in a single line…I learnt that concurrency can…actually make things faster without adding unnecessary complexity. I learnt how rich types can give structure, meaning and modularity to a piece of code (almost) for free. http://www.reddit.com/r/haskell/comments/2mr7ks/im_debating_between_haskell_and_clojure_xpost/
  • 17. –Chris Allen (bitemyapp), Meditations on Learning Haskell I use Haskell because I want to be able to refactor without fear, because I want maintenance to be something I don’t resent. So I can reuse code freely.
  • 18.
  • 22. learn • Real World Haskell • Learn You a Haskell for Great Good! • 99 Problems in Haskell • exercism.io • experiment in GHCi • docs and source on Hackage
  • 25. @amar47shah github.com/amar47shah Thanks! Rainbow Dash images by RichHap http://richhap.deviantart.com/