4 ms·
> I have not seen anyone in Clojure doing this. Sounds like you need to get out more.
by technomancy 17y ago
> I have not seen anyone in Clojure doing this.
Sounds like you need to get out more.
- jrockway 17y agoThanks for the link... I decided to take a look at your Clojure code on Github, and I am not seeing anything functional. Lots of OO/imperitive things going on; global variables (all instances of your HTTP client share the same cookie jar?), mutating objects, standard "imperative" control-flow (try/finally, with-<foo>, etc.), and so on. It looks basically like Emacs Lisp but with fewer parens in "let" clauses and with "defun" spelled "defn". That is not functional programming.
- cemerick 17y agoI'm so glad that someone is keeping it real when it comes to functional programming. sigh You don't mention where you saw all the "global variables", but I'll bet that what you saw were actually vars used in conjunction with binding. Are we really to the point where only monadic IO is acceptable to the high priests of functional programming? FP has always had two parallel tracks, the ML school and the lisp school. Maybe you prefer the former, but just because you really, really like Haskell doesn't mean you get to bar all other lisps from the FP club (as all of your problems with clojure -- i.e. it not being haskell -- certainly apply to all lisps I've worked with).
- jrockway 17y agoYou are attaching too much meaning to an expression. Who cares if you write functional programs? It doesn't matter. But calling a bunch of mutable state and non-composable program fragments that run from top to bottom is not really functional programming, and calling it that just confuses people. The idea of language is to be able to speak clearly about something; having a nebulous expression with no meaning is not helpful, right?
- cemerick 17y agoI suppose I don't care that much about whether clojure is really, honestly FP, but you brought it up... Again, it sounds like you think any given scheme code isn't functional programming, either, it not being lazy by default, etc. Small world, that.
- jrockway 17y agoLaziness is not relevant. SML is definitely functional.
- technomancy 17y ago> all instances of your HTTP client share the same cookie jar? It's cool that you're expanding your horizons by reading code in a new language, but if you hold off on snarkiness until you actually understand the code you're reading, (particularly with regard to what the binding form does) that would be great; kthxbai.