Haskell – A Pure Functional Programming Language


As I mentioned earlier I got interested in Functional Programming recently. Lately there has been lot of interest among developers and programmers on functional programming. Imperative Languages like C# and VB.NET have started introducing concepts from functional programming world like Generics, Lambda Expression, Anonymous Method, Variable Type Inference etc.

My interest behind Functional programming is not because I want to leave Imperative Programming Languages completely and start working with only Functional and Dynamic Languages. My approach is taking best of the both worlds as I believe old concepts like Object Oriented Design and Component Based Design are also very helpful.

I got interested in Functional Programming by watching lot of videos in Channel9 on Functional and dynamic languages. In these videos Microsoft Programming gurus like Erik Meijer and Brian Beckman explains functional programming very well and these videos helped me grasp some of the concepts like Side Effect and Monad effectively. Here’re links to some of the videos –
http://channel9.msdn.com/tags/Functional+Programming
http://channel9.msdn.com/tags/Erik+Meijer
http://channel9.msdn.com/tags/Brian+Beckman

Erick Meijer was one of the designers of Haskell programming language. Currently he is working on Volta project in Microsoft – http://research.microsoft.com/~emeijer/

Haskell is a pure functional programming language. Functional Programming is all about functions. In Imperative Programming also we use functions. But as Functional programming is based on Lambda Calculus everything can be represented with functions. In Pure Function Programming Languages there would be no side effect, no mutable identifiers.

http://en.wikipedia.org/wiki/Purely_functional
http://en.wikipedia.org/wiki/Haskell_%28programming_language%29

Haskell, like most other languages, comes in two flavors: batch oriented (compiler) and interactive (interpreter). An interactive system gives you a command line where you can experiment and evaluate expressions directly, and is probably a good choice to start with.

GHC

Compiler and interpreter (GHCi)

Probably the most feature-complete system

Hugs

Interpreter only

Very portable, and more lightweight than GHC.

While both GHC and Hugs work on Windows, Hugs has perhaps the best integration on that platform. Nonetheless, GHC is more actively developed and maintained, and the consensus seems to be that it is the generally-recommended environment of choice for newcomers to Haskell as well as old hands.

GHC stands for Glasgow Haskell Compiler. GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell. To know more about GHC please go to – http://www.haskell.org/ghc/

 

 

 

 

 

 

 

Installs the following items in menu –

 

 

GHCi stands for Haskell interactive or Glasgow Haskell Compiler Interactive.  Selecting it opens the Haskell interactive similar to Ruby or Python Interactive …

 

 

Here’s the first “Hello World” app in Haskell –

 

 

Notice that Haskell is more intelligent and dynamic than Ruby & Python from the perspective that 3/2 in Haskell returns 1.5 not 1 as in Ruby and Python. PowerShell also is smart enough so 3/2 in PoweShell also returns 1.5 not 1 like Python and Ruby.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s