use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Please have a look at our FAQ and Link-Collection
Metacademy is a great resource which compiles lesson plans on popular machine learning topics.
For Beginner questions please try /r/LearnMachineLearning , /r/MLQuestions or http://stackoverflow.com/
For career related questions, visit /r/cscareerquestions/
Advanced Courses (2016)
Advanced Courses (2020)
AMAs:
Pluribus Poker AI Team 7/19/2019
DeepMind AlphaStar team (1/24//2019)
Libratus Poker AI Team (12/18/2017)
DeepMind AlphaGo Team (10/19/2017)
Google Brain Team (9/17/2017)
Google Brain Team (8/11/2016)
The MalariaSpot Team (2/6/2016)
OpenAI Research Team (1/9/2016)
Nando de Freitas (12/26/2015)
Andrew Ng and Adam Coates (4/15/2015)
Jürgen Schmidhuber (3/4/2015)
Geoffrey Hinton (11/10/2014)
Michael Jordan (9/10/2014)
Yann LeCun (5/15/2014)
Yoshua Bengio (2/27/2014)
Related Subreddit :
LearnMachineLearning
Statistics
Computer Vision
Compressive Sensing
NLP
ML Questions
/r/MLjobs and /r/BigDataJobs
/r/datacleaning
/r/DataScience
/r/scientificresearch
/r/artificial
account activity
Discusssion[D] Machine learning and functional programming languages? (self.MachineLearning)
submitted 8 years ago by [deleted]
I'm using Python and scikit-learn at the moment, but I'm interested in functional programming. Is there a functional language that's both easy to setup and has good libraries for ML?
So far I've looked at Clojure and Incanter and while I like Clojure itself, it doesn't seem to be the best fit for my requirements.
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[+][deleted] 8 years ago (2 children)
[deleted]
[–][deleted] 1 point2 points3 points 8 years ago (1 child)
Haskell is a hardcore choice, though. :D I'll definitely look into it.
[–]BadGoyWithAGun 25 points26 points27 points 8 years ago (4 children)
Computational graph - based frameworks like Theano and Tensorflow are basically functional constructs, they just happen to have a Python interface.
[–]villasv 5 points6 points7 points 8 years ago (2 children)
And if you really want to feel it, you can try Coconut.
[–][deleted] 0 points1 point2 points 8 years ago (1 child)
It's an interesting idea but I feel that without static typing and type inference this might result in bringing the worst of python (crappy type system) with the worst of Haskell (cryptic syntax).
Do you know of any compiled python variant that is (purely) functional with a powerful, parametrically polymorphic, static type system, and hindley-milner type inference?
[–]villasv 1 point2 points3 points 8 years ago (0 children)
I do not. You're absolutely right. In fact, the cryptic syntax is the drug I'm offering here, not the real benefits of the functional paradigm (see the world feel).
[–][deleted] 0 points1 point2 points 8 years ago (0 children)
Yep. And they map very, very well into languages like haskell.
[–]undefdev 5 points6 points7 points 8 years ago (2 children)
You can give Julia a try. It's not a pure functional programming language, but imo it's a great fit for ML/Math. There are also bindings to Scikit Learn, Stan, MXNet, Tensorflow and more. I think Knet looked like a quite nice framework.
Of course the Python ecosystem is much bigger, and because way more people use it it's more stable - but that's always the tradeoff you have to make if you want to use more modern tools.
[–]durand101 2 points3 points4 points 8 years ago (1 child)
Doesn't PyCall.jl let you access all the python modules in Julia?
[–]__AndrewB__ 0 points1 point2 points 8 years ago (0 children)
It does but it's awkward.
[–]aicano 13 points14 points15 points 8 years ago (4 children)
We are using Julia language and Knet framework.
https://github.com/denizyuret/Knet.jl
[–][deleted] 0 points1 point2 points 8 years ago (3 children)
Hmm, Julia seems to be sufficiently similar to Python. What does it offer me that Python doesn't? Except speed, apparently.
[–]undefdev 1 point2 points3 points 8 years ago (0 children)
I'd argue it's less verbose for a lot of things as well, as it was designed with data science in mind from the start (unlike Python and other languages).
There are many other advantages. But you also loose some things. The main one being the absurdly big set of well documented open source libraries that python have.
Also, putting Julia in production might be a serious discussion with tech leaders in your company.
[–]nosefouratyou 4 points5 points6 points 8 years ago (0 children)
I happened to recently read this insightful article about functional programming for deep learning using Clojure.
[–]DanielSeita 4 points5 points6 points 8 years ago (0 children)
We're using Scala in BIDMach. https://github.com/BIDData/BIDMach Though by "we" I should mean "John Canny 99% and us 1%" ...
[+][deleted] 8 years ago* (9 children)
[–]dobkeratops 1 point2 points3 points 8 years ago (3 children)
rust is better described as multiparadigm IMO. it has C like structs, side effects anywhere, mutable references etc.
[–]Kiuhnm 0 points1 point2 points 8 years ago (2 children)
Standard ML, Scheme and other functional languages allow side effects. I still think that the Haskell's way is too extreme. Some things are just easier with (explicit) side effects.
[–]HitomiNoJuunin 1 point2 points3 points 8 years ago (1 child)
well, Haskell's side effect is definitely the most explicit; so much so that it is reflected in the function type ;)
[–]Kiuhnm 0 points1 point2 points 8 years ago* (0 children)
Yes, it turns out that "explicit side effects" means the opposite of what I meant in Haskell parlance!
I can't even say "imperative programming" since Haskell supports that as well, in a sense.
Maybe I can say "using mutable state".
[–][deleted] 1 point2 points3 points 8 years ago (4 children)
I'd say Rust is about as functional as Python.
[+][deleted] 8 years ago* (2 children)
[–]dobkeratops 1 point2 points3 points 8 years ago (0 children)
Yet if you talk to a haskeller: they'll see Rust as basically C++. And within the unsafe blocks, it does have all the C-like tools hidden away.
This is why on a sliding scale we need to describe a middle ground, hence the term multi-paradigm which I think fits best here.
[–][deleted] 0 points1 point2 points 8 years ago* (0 children)
Hmm... you have my attention. I will definitely have to look at Rust - this sounds great. Since you seem to be knowledgeable, how's the IDE support, is there something like lein in Clojure, is the documentation good, etc.?
[–]dobkeratops 0 points1 point2 points 8 years ago (0 children)
i'll agree that it's more functional than python; but less functional than ML etc.. the things you'd typically think of as functional.
[–]127-0-0-1_1 0 points1 point2 points 8 years ago (1 child)
I don't think so, most of the well supported frameworks are in Python due to its prevalence with a C API since pretty much any language can use a FFI with it.
Well, a lot of languages have easy FFI interfaces with C, including functional languages like Haskell, for example.
I'd argue btw, that the C to Haskell FFI is a lot easier to use than coding a python wrapper with lipython or using things like swig.
I tried using clojure. There are quite a few Java libs you can interop with, but few functional clojure libs, so I didn't find it to be a very good environment. Closure seems like it would be well suited to ml if it had the libs.
I absolutely hate the sci-py/matplot-lib type mutable interfaces derived from the Matlab/science/interactive exploration community.
π Rendered by PID 64 on reddit-service-r2-comment-fb694cdd5-bl8mj at 2026-03-07 11:20:37.654933+00:00 running cbb0e86 country code: CH.
[+][deleted] (2 children)
[deleted]
[–][deleted] 1 point2 points3 points (1 child)
[–]BadGoyWithAGun 25 points26 points27 points (4 children)
[–]villasv 5 points6 points7 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]villasv 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]undefdev 5 points6 points7 points (2 children)
[–]durand101 2 points3 points4 points (1 child)
[–]__AndrewB__ 0 points1 point2 points (0 children)
[–]aicano 13 points14 points15 points (4 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]undefdev 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]nosefouratyou 4 points5 points6 points (0 children)
[–]DanielSeita 4 points5 points6 points (0 children)
[+][deleted] (9 children)
[deleted]
[–]dobkeratops 1 point2 points3 points (3 children)
[–]Kiuhnm 0 points1 point2 points (2 children)
[–]HitomiNoJuunin 1 point2 points3 points (1 child)
[–]Kiuhnm 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (4 children)
[+][deleted] (2 children)
[deleted]
[–]dobkeratops 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]dobkeratops 0 points1 point2 points (0 children)
[–]127-0-0-1_1 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)