>
> >Could anyone with a serious and/or research application which would
> >benefit please send me a few details.
> > ... Patrick
>
> Theology:
>
> I believe that functional languages inadequate manipulation of files,
> or persistent data, is a serious hinderance to their use for real
> applications. To test this I'll also ask haskell-users whether they've
> encountered it. There's no fundamental problem, it's just a matter of
> finding the person-months to engineer a solution.
> ... Phil
Still theology:-)
There is, however, a fundamental problem without orthogonal persistence:
functions are not first-class citizens in Haskell!
That's what the `orthogonal' stands for: the possible life-time of data
objects should be independent of their type. In contrast, only strings
of characters are allowed to persist in Haskell's view of the file
system (they are the only first-class objects). This is the reason why
we need all these conversion functions: if we want some large data
structure to persist, we have to convert it into a string before output
and from a string after input (ever wondered how common this task
is?). This is not only tedious, it is also difficult for some types,
and these problematic types include functions. How do you compute a
string representation of a function in Haskell?
Apart from this, Phil is right: there is no magic going on with
persistence. From an implementation view, it means doing the work of
conversion once (in the language implementations) instead of again and
again (in the user programs). It is a good example of work of which
programmers should be freed of in a high-level language.