
HLearn: A Machine Learning Library for Haskell (2013) [pdf] - allenleein
https://izbicki.me/public/papers/tfp2013-hlearn-a-machine-learning-library-for-haskell.pdf
======
jackpirate
Hi everyone, author of HLearn here :)

This is a bit awkward for me as I've paused the development of HLearn and
emphatically do not recommend anyone use it. The main problem is that Haskell
(which I otherwise love) has poor support for numerical computing. I've tried
developing an alternative standard library to improve the situation
([https://github.com/mikeizbicki/subhask](https://github.com/mikeizbicki/subhask)),
but Haskell's type system isn't yet powerful enough to do what I want. I'm
sure the type system will have the needed features in 5-10 years, and I'd
rather wait and do it right.

If you have any questions, I'd be happy to answer them.

~~~
bos
Let me put Mike's comment into what I think is its proper context. "Poor
support for numerical computing" really means "relative to Mike's dream, which
is not actually realisable by any programming language today" :-)

Most readers seem to be misinterpreting Mike as anchoring off other popular
programming languages of today, whereas he's looking for language features for
which there's (a) no consensus that they'll actually be good when they exist,
and (b) don't yet exist. (I'm highly skeptical of dependently typed
programming.)

I think that there's a case to be made that numeric programming in Haskell,
relative to the state of the art of today rather than the year 2100, really
isn't so great – but my concerns are very different than Mike's, and revolve
around libraries rather than type system features.

Source: have done a bit of Haskell in my day.

~~~
jackpirate
You're 95% correct about my view.

I do think that matlab/python are a bit better numerical programming languages
than Haskell as-is, but only marginally. This is not just due to the library
ecosystem, but also because I think that dynamic languages really are better
than the best Haskell2010/GHC8.2 library theoretically possible. There are
just some things that the existing type system makes a bit more awkward.

------
platz
a newer library targeted at deep learning:
[https://github.com/HuwCampbell/grenade](https://github.com/HuwCampbell/grenade)

------
amelius
What are the advantages of Haskell at deep learning, given that

1\. Graph structures are notoriously difficult to model in functional
languages.

2\. The software-engineering side of deep learning is not all that difficult
(e.g. using Keras is quite simple).

~~~
amelius
Also, correct me if I'm wrong, but the state of the art seems to be happening
in Tensorflow/Keras; so committing to a different platform could mean you are
systematically lagging behind in this new field.

~~~
platz
Then don't use Haskell! I'm having a hard time understanding if your question
is actually genuine or if you're just dropping by the Haskell thread to
explain why you're not into using Haskell.

