Informatics 1 – Functional Programming Homepage
The course teaches the basics of functional programming using the language Haskell. The main goal is to acquaint the student with fundamental programming concepts such as recursion, abstraction, higher-order functions and data types, whilst at the same time emphasizing the practical use of such constructs by applying them within a graphical environment.
Advanced Functional Programming - Fall 2006
These pages are a record of the in-class discussions for the graduate class "Advanced Functional Programming" given at Harvard University in the Fall of 2006.Is Haskell a Good Choice for Web Applications?
yes, but it takes balls
read this source codeЖурнал «Практика функционального программирования» Выпуск 1, июль 2009
Here’s my basic “How to learn about parallel programming in Haskell” reading list.
A haskell reading materialHaskell Platform Download (Beta)
“The Haskell Platform is a blessed library and tool suite for Haskell distilled from Hackage, along with installers for a wide variety of machines. The contents of the platform is specified here: Haskell: Batteries Included.”
This is the the Haskell Platform, version 2009.2.0.2: a single, standard Haskell distribution for every system. The Haskell Platform is a blessed library and tool suite for Haskell distilled from Hackage, along with installers for a wide variety of machines. The contents of the platform is specified here: Haskell: Batteries Included.
This is the the Haskell Platform, version 2009.2.0.2: a single, standard Haskell distribution for every system.InfoQ: Joe Armstrong and Simon Peyton Jones discuss Erlang and Haskell
Joe Armstrong and Simon Peyton Jones discuss Erlang and Haskell
Interesting video where Joe Armstrong and Simon Peyton Jones engage in some friendly banter about functional programming and Erlang vs Haskell.Why Haskell is beyond ready for Prime Time « Integer Overflow
Why Haskell is beyond ready for Prime Time
Here’s a concrete example: I’ve got a list of numbers, and I want to split it up into two lists — one consisting of the evens, one consisting of the odds. This seems like a pretty specialized task, so I doubt there’s a function written for it explicitly. So let’s look for a function that takes a list, and a boolean test, and splits it into two lists — one consisting of the elements satisfying the test, and the other consisting of the elements that don’t. That is, I need a function that takes a list of integers, and a function from integers to bools, and produces two lists of integers. No problem: I jump over to Hoogle and search for functions of type [Int] -> (Int -> Bool) -> ([Int], [Int]). It produces a short list of results, tells me what library they are in, and even gives a brief description of what the function does. I quickly see that partition is the function I want.
**** Great Haskell Advocacy . We’ve got all the usual things — source control by darcs, unit testing by HUnit, automated testing by Quick Check, and source documentation by Haddock. We’ve also got package management by Cabal (tied into Hackage, of course). We’ve got one other tool that is perhaps the strongest reason for the language — the Glorious Glasgow Haskell Compiler. You won’t find a more advanced compiler anywhere on earth. It produces code that is performance-competitive with C, has built in support for profiling, and features a rich interactive mode that both helps you test code and also explore types and interfaces.Computational Semantics with Functional Programming
This book is on applications of logic in the semantic analysis of language.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. For some people, it can even seem like it’s sneaking out from under you every time you think you understand it. This is sort of a FAQ for people who are new to Haskell, or scared away by its syntax.http://intensivesystems.net/tutorials/monads_101.html
"A very powerful application of monoids are 2-3 finger trees, first described by Ralf Hinze and Ross Patterson. Basically, they allow you to write fast implementations for pretty much every abstract data type mentioned in Okasaki's book on purely functional data structures. For example, you can do sequences, priority queues, search trees and priority search queues. Moreover, any fancy and custom data structures like interval trees or something for stock trading are likely to be implementable in this framework as well. How can one tree be useful for so many different data structures? The answer: monoids! Namely, the finger tree works with elements that are related to a monoid, and all the different data structures mentioned above arise by different choices for this monoid. Let me explain how this monoid magic works."Learning Haskell through Category Theory, and Adventuring in Category Land: Like Flatterland, Only About Categories « Benjamin L. Russell’s Adventures in Programming Language Theory Wonderland
, I hadn’t found an appropriate publication on category theory that addressed the subject at the proper pace,
Arrow, Structures and FunctorsHello Haskell, Goodbye Lisp - Lost in Technopolis
Comparison of the LISP and HASKELL (functional) languages
Interesting read on some programming languages I hadn't heard of until today, they are still very useful apparentlyHow I finally understood the Y Combinator (and blew my damn mind) « noeit
Welcome to your first taste of Haskell! Let's try Haskell right now! Beginners Type help to start the tutorial. Or try typing these out and see what happens: * 23*36 * reverse "hello" Learn More Real World Haskell book cover Get stuck into a book with Real World Haskell (readable online!), published by O'Reilly Media. Checkout Haskell.org for more information about Haskell.Tupil Code Blog » Blog Archive » Look ma, no callbacks!
Snap Framework: a web framework for Haskell
Snap is a simple web development framework for unix systems, written in the Haskell programming language. A fast HTTP server library with an optional high-concurrency backend using the libev event loop library A sensible and clean monad for web programming An XML-based templating system for generating HTML
What is Snap? Snap is a simple web development framework for unix systems, written in the Haskell programming language. Snap is well-documented and has a test suite with a high level of code coverage, but it is early-stage software with still-evolving interfaces. Snap is therefore likely to be most appropriate for early adopters and potential contributors.