Haskell web programming update: updated for Yesod 1.2 tl;dr: A simple Yesod tutorial. Yesod is a Haskell web framework. You shouldn’t need to know Haskell. Why Haskell? Its efficiency (see Snap Benchmark & Warp Benchmark). Haskell is a high level language that makes it harder to shoot yourself in the foot than C, C++ or Java, for example. “If your program compiles it will be very close to what the programmer intended”. Haskell web frameworks handle parallel tasks perfectly—even better than node.js, for example. From a purely technical point of view, Haskell seems to be the perfect web development tool. Hard to grasp HaskellHard to find a Haskell programmerThe Haskell community is smaller than the community for /. I won’t say these are not important drawbacks. Actually there are three main Haskell web frameworks: I don’t think there is a real winner between these three framework. Why did I write this article? During this tutorial you’ll install, initialize, and configure your first Yesod project. Install Initialize
lisperati There's other tutorials out there, but you'll like this one the best for sure: You can just cut and paste the code from this tutorial bit by bit, and in the process, your new program will create magically create more and more cool graphics along the way... The final program will have less than 100 lines of Haskell and will organize a mass picnic in an arbitrarily-shaped public park map and will print pretty pictures showing where everyone should sit! (Here's what the final product will look like, if you're curious...) The code in this tutorial is a simplified version of the code I'm using to organize flash mob picnics for my art project, picnicmob...  - Lines of active code only, not counting optional function signatures.
Planet Haskell Yesod Web Framework for Haskell functional programming - Getting started with Haskell Wadler: Monads Philip Wadler The arrow calculus Sam Lindley, Philip Wadler, and Jeremy Yalloop, Journal of Functional Programming 20(1):51&em;69, 2010. We introduce the arrow calculus, a metalanguage for manipulating Hughesâ€™s arrows with close relations both to Moggiâ€™s metalanguage for monads and to Patersonâ€™s arrow notation. Arrows are classically defined by extending lambda calculus with three constructs satisfying nine (somewhat idiosyncratic) laws; in contrast, the arrow calculus adds four constructs satisfying five laws (which fit two well-known patterns). The five laws were previously known to be sound; we show that they are also complete, and hence that the five laws may replace the nine. Available in: pdf, doi. Monadic constraint programming Tom Schrijvers, Peter Stuckey, and Philip Wadler Journal of Functional Programming 19(6):663&em;697, 2009. A constraint programming system combines two essential components: a constraint solver and a search engine. Available in: pdf, doi. Available in: pdf.
HaskellWiki The Monad.Reader | Binding your input since 2005 The Scala Programming Language Simple haskell unit testing A Little Lens Starter Tutorial lens is a package which provides the type synonym Lens which is one of a few implementations of the concept of lenses, or functional references. lens also provides a number of generalizations of lenses including Prisms, Traversals, Isos, and Folds. Lenses and their cousins are a way of declaring how to focus deeply into a complex structure. They form a combinator library with sensible, general behavior for things like composition, failure, multiplicity, transformation, and representation. Lenses let you apply some of the power of libraries like hxt to all data types in all programs that you write. As this comparison suggests, the initial steps might be very complicated, but, unlike hxt, lenses are ubiquitous enough to make learning the complexity pay off over time. The end result is a way to efficiently construct and manipulate "methods of poking around inside things" as simple first-class values. A lens is a first-class reference to a subpart of some data type. Yep. Any more examples? ...