4 ms·
Hope this goes into a lot of depth... My main issue with existing books and tutorials is that I'm left in the dark about the more interesting/advanced parts of
by skwosh 14y ago
Hope this goes into a lot of depth...
My main issue with existing books and tutorials is that I'm left in the dark about the more interesting/advanced parts of Haskell.
Some of the areas I would like to have a better understanding:
- More advanced kinds of monads e.g. Logic, Continuation
- Monad Transformers
- Arrows
- Rank-N types
- GADTs
- Category theoretical ideas e.g. Bananas and Lenses
- Type derivatives and TypeClass abuse c.f. Conor McBride
- Control patterns like Iteratees, Generic Zippers c.f. Oleg Kiselyov, Chung-Chieh Shan
I have an intuitive grasp of the above, but to me Haskell is more about programming with types than anything functional.
On the practical side, it seems like Haskell excels as a language processor, and parsing/compilation would be a great way to explore how to structure certain kinds of applications (like web servers, graphics pipelines, etc).
Please don't make it too real-world, I already have bash ;)
- dysoco 14y agoI'd say you should take a look at research papers for those topics: But it's true, we are lacking advanced Haskell books.
- skwosh 14y agoFor me, there's a pretty big gap between the available educational materials and research papers. My understanding of the academic stuff is mostly intuitive. It isn't until I read a paper like Monadic Parser Combinators [1] or sigfpe's blog [2] that it really becomes concrete. I find that for a lot of higher-level ideas much of the heavy lifting isn't necessarily through application of functional ideas per se, but through more sophisticated type gymnastics. Because expressions are often written in short-hand (to expose structure), as well abbreviated and underspecified (to get the compiler to do the work), making sense of academic code can be a challenge. In another life I'd have dedicated more time to learning the fundamentals (of Programming Language Theory and Category Theory), because I find the whole field insanely facinating. Maybe I'm looking for a short-cut but there isn't one? [1] http://eprints.nottingham.ac.uk/237/1/monparsing.pdf http://eprints.nottingham.ac.uk/237/1/monparsing.pdf [2] http://blog.sigfpe.com/ http://blog.sigfpe.com/
- tel 14y agoThere's definitely a big gap, but I'd still suggest diving in. Reading a few of the major Functional Pearls is tough going at first, but they're generally designed to be free-standing and practical.
- josh-j 14y agoIf you're reading this and understand those areas well, then consider donating some time towards improving the advanced track on the Haskell wikibook (http://en.wikibooks.org/wiki/Haskell http://en.wikibooks.org/wiki/Haskell).
- gtani 14y agoEverybody has a different list of a dozen intermed/advanced topics ;-} http://www.reddit.com/r/haskell/comments/17gavl/what_you_consider_advanced_haskell_topics/ http://www.reddit.com/r/haskell/comments/17gavl/what_you_con... http://stackoverflow.com/questions/5778436/what-haskell-topics-need-to-be-addressed-in-a-real-world-haskell-style http://stackoverflow.com/questions/5778436/what-haskell-topi... And most of those are fast moving topics these days but they're well covered in blogs, the Cafe list, stackoverflow, they just need to be collated/cataloged. At a minimum some wiki farming would address a lot of those. Unfortunately, I emailed the wiki contact a couple times about pitching in and never got response. ___________________ There's a few books you could look at, tho they're more building out what's in RWH, not up: draft by Snoyman https://github.com/mezzohaskell/mezzohaskell https://github.com/mezzohaskell/mezzohaskell Bird's Functional algorithm pearls http://www.amazon.com/Pearls-Functional-Algorithm-Design-Richard/dp/0521513383/ http://www.amazon.com/Pearls-Functional-Algorithm-Design-Ric... http://haskell.cs.yale.edu/wp-content/uploads/2013/01/HSoM3.pdf http://haskell.cs.yale.edu/wp-content/uploads/2013/01/HSoM3.... JA Alonso has another book of exercises (in Spanish http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell... also the FP in Scala (Morris, Chiusano, Bjarnason) may include some haskell code, I haven't read yet, but definitely covers a lot of these hot topics http://manning.com/bjarnason/ http://manning.com/bjarnason/
- eru 14y ago> Unfortunately, I emailed the wiki contact a couple times about pitching in and never got response. Have you tried contacting the Haskell cafe instead? I am sure someone there will be able to get through.
- FPguy 14y agoWe welcome people who have written (or plan to write) Haskell tutorials and exercises to post them on the School of Haskell, if they find its features useful. By now you've probably seen the Active Haskell demo in the beta screencast video? https://haskell.fpcomplete.com/beta https://haskell.fpcomplete.com/beta We also welcome good organizers (like yourself perhaps?) to write tutorials that consist partly or entirely of links to other materials. The role of editors and organizers is sometimes undervalued, but not by us!
- eru 14y agoAbout the top of your list: don't worry about Monads. Learn Applicatives first and foremost.
- tel 14y agoWhy do you say that? Applicatives are perhaps easier and open up Foldable/Traversable, but Monads are just everywhere. As the de facto default functor sequencing method, I'd recommend people start there.
- eru 14y agoUsing Haskell in Production at Standard Chartered, we are seeing Applicatives crop up everywhere. For example, almost all of the time, our parsers (and even IO) need to be used only as Applicative, or at most as Alternative. Applicatives also compose in interesting ways as opposed to Monads.