|>>|| No. 23275
I'm not entirely sure how much of my problem is actually a problem, and how much of it is just me being going over the top for comedic effect, and I'm the one with the problem. Anyway, at Uni, unsurprisingly, in the various computer science courses, I've ended up learning Python and Ruby. I don't have a problem with these languages per se; some parts of them I like, and they do have their place. No, my problem is that, for a while now, I've been using Haskell almost universally. I'm not great at it, and I have not yet got anywhere near some of the more advanced stuff. Basically, it's the stuff in LYAH, plus a few libraries, minus zippers, and a bit of experience. Nevertheless, I am not sure I have ever felt so comfortable in a language, be it when I've done stuff in the shell, in Python, in C, or so on. It just came very naturally in a way those others didn't. So, basically, how do I go about getting out of the functional mindset, at least for the time being, enough to re-learn the basics of imperative languages? (I intend to continue to use a functional style, even in Python for example, because it supports it, and that's what all the cool kids are doing, but just for the moment, it's probably best to get the hang of the actual language, not the tacked-on functional bits). How do I deal with not having that beautiful type system, no higher-order functions, mutability, etc etc? How do I deal with the comparative verbosity of the languages? How do I go back to someone else when Haskell has my heart?
On a side-note, what is functional style like in Python and Ruby? I mean, Python differentiating between expressions and statements makes the lambdas a bit annoying, but, for example, can recursion be used to as great an extent as it is in Haskell, or is that a bad idea? And how do I deal without pattern matching in function definitions?