tags:

views:

602

answers:

5

Where can I find sample projects developed in Haskell?

I am not looking for oogiboogi teta panta sigma functor higher order amusements for Haskell fanboys and academic geekiiii.

For example I have developed a tool for reading IIS log files and generating some CSV-like files and then import them into SQL Server (in C# 3.0) or

A calculator or

A phone book or

A SSH server and client

(And I really don't care how elegant is the design of Haskell of how clever is some piece of code. Yet that does not prevent me from trying to learn or understand something different. That may prevent unnecessary questions to some extend! :)

Note:

Hey guys! I am not insulting anyone! It is just I am looking for some tutorial that develop a whole useful program.

You know (to be honest) I feel insulted when reading Haskell and fail to develop anything out of it - It's funny that I am so obsessed with Haskell for a long long time; every year at spring this phenomena returns to me ;)

Again: I am not undertaking the efforts of whom have investigated their time in Haskell (and for sure are good at it). It is just they can not see what I (someone like me) wants to see. It is not about having a limited mind (on any side) but having different point of views of Everest (you may find it like a big pyramid or a big pile of CMOS :)

At end, if all things Haskellish, remains just as an instrument for studying possible mathematical tools that can be achived in a higher order type system for lambda calculus; it can not offer any good to a daily queue of tasks; and bring benefits to one's workbench - like me.

For example (I think) I have a good enough insight on Monads but when I am going to have a really big environment - which has big bags of similar objects - I get really confused: How can I speak to two upper levels and then goes down to change something there and again come back to this point? Monad Transformers? So how should I put all this together? I have to define so much helper functions?! And how can I inform some other part of my code of some change? (Something like events in C#) Ok, I am developing a spreadsheet; and all thing I am doing in Haskell (most of it) is trying to hide that ugly fact that I am actually passing my whole environment around; Can't we describe it in an easier way?

In a C# mind there is none of these by default and even when there is some affections (!) there is no real experience to "How to put it in use".

And thanks again for your time to read my question

+3  A: 

Have you tried looking at the Haskell site? It has lists of applications from web servers through to games.

Yacoby
Thanks. Yes; I have looked into Haskell site. They are not neither of my interest nor of my level.
Kaveh Shahbazian
+1  A: 

Look at sourceforge and haskell.org. You can find basic applications in books(for example there is a csv parser in real world haskell) or library samples(for example haskelldb). If you want to study some practical codes you can look at xmonad(windows manager) or darcs(distributed version control system).

barism
I have done almost all of these before (except for darcs). My problem is most of these are developed by academics not programmers and developers (Those who write ASP.NET or Java for everyday life) so the mindset behind the code is not familiar to me and insist on irrelevant points (IMHO). I have asked this question here just to test what others have found and used for Haskelling. There were times that I was exhausted on Haskell; enough to say that I have done with some basic things (like searching in sourceforge).Thanks
Kaveh Shahbazian
I'm not sure what you mean by "academics" here. The developers of xmonad are working programmers.I think the problem is your perception of "oogiboogi teta panta sigma functor higher order" stuff as being disconnected from the concerns of everyday programming. Its not; by using that stuff you can make explicit things that were previously implicit, and thereby reduce the length of code and the number of bugs in your software.Good Haskell code isn't just Python or Java translated into Haskell; it leverages the stuff that is unique to Haskell.
Paul Johnson
Paul! Unfortunately (at least for me) you are totally right! I mean on "It is not just a translated Python or Java".That's what I want to find; a way to think in Haskell. I the things I found are about "what is what" or at a more elegant level (of science) about "how" or "why" (I mean for example philosophies or problem patterns). But none is about for example where to start getting your hands dirty: All I have is an experienced C#-Mind; so it is (somehow) natural to stick with that.
Kaveh Shahbazian
Or maybe I can prove to myself Haskell does not worth the bother - at least for application developing (not tool developing or system programming) because application development is about translating "human intentions" not "reasoning" (if human could ever do reason about his/her intention, then we should live in a better world - apparently).:)
Kaveh Shahbazian
In which case I can only suggest that you start swimming. Pick a problem and start hacking.
Paul Johnson
+1  A: 

Take a look at this blog post by Neil Mitchell. It shows an example of scripting in Haskell (your first example).

Is a web server a concrete enough application for you? There are several Haskell web servers out there.

Nowadays everyone posts their applications and libraries at Hackage; you might want to take a look there, too.

Martijn
+3  A: 

There are two main places to look for Haskell code:

There are more than 1500 libraries on Hackage, written by hundreds of developers. You will find there something for what you need.

Don Stewart
Thanks for hackage; it happens to stay out of my sight. If you were going to choose 4 projects for introducing to one learner to read their source code, what would you choose?
Kaveh Shahbazian
+2  A: 

Here you go: http://book.realworldhaskell.org/read/. "Real-world" usage with a great course from "Hello world" to fairly advanced GUI and network applications.

But, hey, all that academic geekiii math stuff is fun! ;) Well, unfortunately, that's only when you get it, before that it's indeed a headache.

drdaeman
It does not look like a "Haskell Recipes" (and maybe it does not intend to; but I wish it would)
Kaveh Shahbazian