[Haskell-cafe] what is basic Haskell?

Alexander Vieth alex at lagoa.com
Thu Jul 24 23:09:52 UTC 2014

I'm curious to know why you have included functional dependencies under basics. I'd call that an advanced concept, since a Haskell programmer could be effective even without understanding it. Although, if your company makes heavy use of these, then I suppose you ought to consider it basic for new recruits.


On 2014-07-24, at 7:01 PM, Wojciech Danilo wrote:

> This is **very** interesting question! 
> When we recruit people to our company (we are working in Haskell everyday), we are basing on some classification between basic, intermediate and advanced stuff. These sections are shown below. I would love to hear what others are thinking about it and what from the below stuff would be widely considered as "basic Haskell knowledge", which would allow for full-time basic Haskell work.
> Basics
> type classes
> instances
> functors, applicatives, monads, etc (http://www.haskell.org/haskellwiki/Typeclassopedia)
> functional dependencies
> Patterson condition
> Coverage condition
> Liberal coverage condition
> monad transformers
> Intermidiate
> lens
> arrows
> free monads
> Type families
> closed type families
> existential datatypes
> RankNTypes
> church encoding
> Advanced
> templateHaskell
> generics
> continuations
> delimited continuations
> 2014-07-25 0:44 GMT+02:00 Johan Larson <johan.g.larson at gmail.com>:
> What does a programmer need to know to be proficient in "basic Haskell"?
> For my money, basic programming skills are those that are required to
> write programs for simple tasks in the common idioms of the language.
> This means the practitioner should be able to read input from the
> terminal or files, select/combine/reformat data, and output a result.
> At this point, efficiency isn't really the point; only getting to a
> correct answer without writing anything really weird matters.
> In LYAH, I'd put the boundary at the end of chapter 9, which covers
> the IO monad. At that point the reader has studied functions, lists,
> tuples, types, recursion, higher order functions, four major modules,
> and algebraic data types. Actually, some of the later topics in
> chapter 8 (functors, kinds, recursive data structures) seem more like
> intermediate material.
> Thoughts?
> --
> Johan Larson -- Toronto, Canada
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140724/f3880474/attachment.html>

More information about the Haskell-Cafe mailing list