This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-12-09
Channels
- # adventofcode (197)
- # announcements (25)
- # aws (1)
- # babashka (21)
- # beginners (138)
- # calva (21)
- # cider (5)
- # clara (1)
- # clj-kondo (35)
- # clojure (97)
- # clojure-australia (4)
- # clojure-dev (37)
- # clojure-europe (100)
- # clojure-nl (2)
- # clojure-spec (7)
- # clojure-uk (36)
- # clojurescript (11)
- # conjure (15)
- # cursive (20)
- # datomic (12)
- # emacs (10)
- # events (2)
- # fulcro (83)
- # graalvm (14)
- # jobs (1)
- # jobs-discuss (27)
- # kaocha (75)
- # lambdaisland (21)
- # off-topic (27)
- # pedestal (5)
- # reitit (2)
- # reveal (20)
- # rewrite-clj (24)
- # sql (9)
- # tools-deps (37)
- # xtdb (93)
Is "procedural" a fitting antonym when talking about "functional programming" ?
I guess my question is, what's the opposite of "functional?"
that does not help me in my essay but i appreciate the thought immensely
google says the opposite of functional is impractical...
imperative?
I wouldn't say it has an "opposite", but there are many alternatives. examples: • OO • procedural • logic programming
and you can mix and match to a degree
where does Assembly fit into that trichotomy?
When I tried to explain functional programming to a colleague lecturer once (traditionally the education was still big on OO) his reply was: but this is back to procedural programming. I gave up.
to quote the abstract of the linked paper "their primitive word-at-a-time style of programming inherited from their common ancestor—the von Neumann computer, their close coupling of semantics to state transitions"
Hmm... I want to explain that transforming collections is better than setting up a fickle environment and pulling levers...
it's not a trichotomy, it's a way of categorizing approaches that lie in a multi-dimensional space. approaches may overlap and there may be approaches that don't have common categorical names
von-Neumann it is
That's very interesting. I agree with you @smith.adriane in that there are several slopes within which most language styles will live/overlap... I mean, pretty much all the code has those 3 in it to some degree...
But a register / drawer where you put stuff and manipulate it's drawer sequentially is different than transforming collections without caring where / what / which / is-there-a / drawer
So yeah, that distinction is a little trickier to peg succinctly
the phrase rich uses in a number of talks to cover oop and procedural is "place oriented programming"
but those descriptors are sort of only good for "small" programs. programs on a single thread, maybe on a single machine. as the lambda calculus is a logic of names, process calculi are logics of places

Dig it.