Let's talk about objects in functional languages. This could be a sticking point, so I'll get this out of the way up-front: I find arguments over whether such-and-such a thing is "really" functional or "really" imperative or "really" object-oriented to be for the most part frustrating and useless. A lot of these arguments boil down to value judgments in disguise (a thing I've touched on in the past when talking about the rhetorical emphasis placed on math in programming) and many of the rest ...