Lenses and software transactional memory are covered in my book "Beginning Haskell" http://www.apress.com/9781430262503

To the list of things that blew my mind, I would like to add data type generic programming (in the style of GHC.Generics), something which is really useful but not that discussed.

2014-11-03 23:53 GMT+01:00 Jeffrey Brown <jeffbrown.the@gmail.com>:
What concepts relatively unique to Haskell are powerful, widely applicable, and not mentioned in most introductory texts? (By "relatively unique to Haskell" I mean maybe they're part of Lisp or Scheme, but not, say, Java.)

Some of the concepts important to Haskell, such as lambda expressions and recursion, are also present in more popular languages. Many others, though, either have no equivalent in (most) other languages, or else are very unlike the equivalent:

    types, classes and kinds
    higher-order functions
    evaluation
        partial application
        tail recursion
        laziness
        currying
        pattern matching
        application and composition operations
    contexts
        functors, applicatives, monads
        monad transformers
    lenses
    :def macros
    arrows
    continuation passing style
    software transactional memory

Most of those topics appear to be covered by introductory texts, but the last five are not. I found each of them by accident, and each kind of blew my mind. They all strike me as powerful, widely applicable, and obscure.

Are there others?

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe