[Haskell-beginners] Is Haskell for me?

Luis P. Mendes luislupe at gmail.com
Fri Nov 6 08:58:16 EST 2009


Hi,

I'd like to have some points of view on this subject.

I need to start a project on neural analysis and genetic algorithms
that will process many millions of records in a Linux X86_64 box (some
development also in a X32 computer).  Maybe I'll use fuzzy logic, or
case-based reasoning, or decision trees, too.

Recently, I finished a small project on genetic algorithms with
Python, but since run-time is very important, my next project will
need a fast language.  Either I'll go to C++ or similar language or
I'll try a functiional language - Haskell.
Apart from some features in Python, I've never programmed thinking in
a functional way.
I'd like to avoid having to learn C++.  I'd like to concentrate in
getting the work done and Haskell seems like a solution.  But...

My questions are:
- Is Haskell able to read (also write to a point) data from databases
in a fast and reliable way? (MySql or PostgreSQL)

- how could I program something like this in Haskell:
    .. generate random population
    .. for each one of the population:
      .. for time period 1 to ten million:
        .. evaluate method 1, 2, 3, 4, 5, 6, ....
      ..evaluate fitness of each one
    .. generate new population based on results of previous generation

It seems relatively intuitive for me to program this in an imperative
language.  But what about in Haskell?

- Is Haskell suitable to process data like this in a fast way
(aproximate to C++?)

- In order for Haskell to be fast, coding is done in a 'natural' way
or with use of special hidden details of the language?

- Although I always liked math, I no longer have the knowledge I used
to have several years ago.  Is this important to help program in this
funcional language?

- Are there graphical packages available to plot results or is it easy
to connect it to a Python (or C) library?

- Is code easily reusable in different future projects?  Since it has
no objects... how can it be done?

Sorry for all these questions, but I really need to know about this
and that's why I want to read answers from knowledgeable people.


Luis


More information about the Beginners mailing list