[Haskell-cafe] what is basic Haskell?

Johan Larson johan.g.larson at gmail.com
Fri Jul 25 01:53:24 UTC 2014


That's setting the bar rather high, isn't it? I appreciate that you
are talking about professionals, but working professionals whose
domain is Haskell programming should have long since mastered basic
Haskell, whatever we call "basic". Their daily work is intermediate
Haskell, with occasional detours into the advanced.

On Thu, Jul 24, 2014 at 7:01 PM, Wojciech Danilo
<wojciech.danilo at gmail.com> 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
> GADTs
> 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
>
>



-- 
Johan Larson -- Toronto, Canada


More information about the Haskell-Cafe mailing list