background preloader

Haskell

Facebook Twitter

Why the world needs Haskell - Devalot. This is a technical review of Haskell and why software developers should care about functional programming.

Why the world needs Haskell - Devalot

For a non-technical review of why your company should be using Haskell you might want to watch this introduction to Haskell video by FP Complete. TL;DR: Writing high-quality, bug-free software isn’t easy. Haskell (and similar languages) provide the programmer with the tools necessary to get closer than ever before. By removing entire categories of bugs (such as those caused by null pointers and nil objects, type coercions, accidental mutation, etc.) and introducing a powerful type system, programmers can write better code in the same amount of time (and often less) than more traditional languages. Null Pointers and Undefined Values The code we write eventually executes in the real world and things don’t always go as we would like. These are exceptional situations that we don’t have much control over and which we have to deal with gracefully. Functional Programming For The Rest of Us. Monday, June 19, 2006 Introduction Programmers are procrastinators.

Functional Programming For The Rest of Us

Get in, get some coffee, check the mailbox, read the RSS feeds, read the news, check out latest articles on techie websites, browse through political discussions on the designated sections of the programming forums. Rinse and repeat to make sure nothing is missed. Go to lunch. The only thing, every once in a while challenging articles actually do pop up. I don't know about your list, but a large chunk of the articles in mine are about functional programming. It's true that FP articles and papers are hard to understand, but they don't have to be. Chapters - Learn You a Haskell for Great Good!

Haskell. Real World Haskell. Download Haskell. Hoogle. Hoogle is a Haskell API search engine, which allows you to search many standard Haskell libraries by either function name, or by approximate type signature.

Hoogle

Example searches: map (a -> b) -> [a] -> [b] Ord a => [a] -> [a] Data.Map.insert Enter your own search at the top of the page. The Hoogle manual contains more details, including further details on search queries, how to install Hoogle as a command line application and how to integrate Hoogle with Firefox/Emacs/Vim etc. I am very interested in any feedback you may have. Please email me, or add an entry to my bug tracker. The Haskell Cheatsheet. Haskell Type Checker In Your Browser. Try Haskell! An interactive tutorial in your browser. FP Haskell Center - FP Complete. Www.lisperati.com/haskell/ 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...

www.lisperati.com/haskell/

The final program will have less than 100 lines of Haskell[1] 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... Be sure to check out the site and sign up if you live in one of the cities we're starting off with :-) [1] - Lines of active code only, not counting optional function signatures. Learn Haskell Fast and Hard. Tl;dr: A very short and dense tutorial for learning Haskell.

Learn Haskell Fast and Hard

Thanks to Oleg Taykalo you can find a Russian translation here: Part 1 & Part 2 ; Table of Content. Haskell: The Confusing Parts. If you’re used to the C family of languages, or the closely related family of “scripting languages,” Haskell’s syntax (mainly) is a bit baffling at first. How to read Haskell like Python. Tl;dr — Save this page for future reference.

How to read Haskell like Python

Have you ever been in the situation where you need to quickly understand what a piece of code in some unfamiliar language does? If the language looks a lot like what you’re comfortable with, you can usually guess what large amounts of the code does; even if you may not be completely familiar how all the language features work. For Haskell, this is a little more difficult, since Haskell syntax looks very different from traditional languages. But there's no really deep difference here; you just have to squint at it just right. Beginning Haskell. Before you start About this tutorial This tutorial targets programmers of imperative languages wanting to learn about functional programming in the language Haskell.

Beginning Haskell

In an introductory tutorial, many of Haskell's most powerful and complex features cannot be covered. In particular, the whole area of type classes and algebraic types (including abstract data types) is a bit much for a first introduction. For readers whose interest is piqued, I will mention that Haskell allows you to create your own data types, and to inherit properties of those data types in type instances. The other significant element omitted in this tutorial is a discussion of monads, and therefore of I/O. Dev.stephendiehl.com/hask/#(1) Stephen Diehl (@smdiehl ) Since I wrote these slides for a little user group talk I gave two years ago they have become a surprisingly popular reference.

dev.stephendiehl.com/hask/#(1)

I decided to actually turn them into a proper skimmable reference for intermediate level Haskell topics that don't necessarily have great coverage or that tend be somewhat opaque as to where to get going, and then aggregate a bunch of the best external resources for diving into those subjects with more depth. Hopefully it still captures the "no bullshit brain dump" style that seemed to be liked.

The source for all snippets is available here. Notes on Haskell. Haskell. Is Haskell the Cure? - Mathias Biilmann. Ted Dziuba's well executed trolling, Node.js is Cancer has been sucessful in getting people all riled up, benchmarking fibonacci servers in all the popular scripting languages.

Is Haskell the Cure? - Mathias Biilmann

Both Joshua Kehn and Brian Beck reaches the conclusion that Node is more than fast enough through their benchmarks of Ruby, PHP and Python versions of the Node fibonacci example. My goto tool for writing fast, concurrent web services is Haskell. So I thought I would see how a direct translation of the fibonacci service would fare with the Snap Framework. Making A Website With Haskell - adit.io. This is a guide to building and deploying a simple website using Haskell.

Making A Website With Haskell - adit.io

We will use: Scotty for the backend Blaze-html for templating and Persistent for the ORM. Scotty is Haskell’s version of Sinatra. It also uses the same web server as Yesod (Warp) so it’s quite fast. VsHaskell. See also [LanguageComparisons]. Haskell Haskell is a modern functional language (like lisp). It's not commonly used but the language is used for some "real" projects (not just an experimental language) and is becoming more common in industry. Haskell.