start you a haskell (for great good)!

25
Start You a Haskell for Great Good!

Upload: amar-shah

Post on 08-Aug-2015

66 views

Category:

Software


5 download

TRANSCRIPT

Start You a Haskellfor 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-nowgithub.com/begriffs/haskell-vim-now

Now Haskell!

@amar47shah github.com/amar47shah

Thanks!

Rainbow Dash images by RichHap http://richhap.deviantart.com/