|
|
|
|
|
by dragonwriter
1511 days ago
|
|
> That doesn't make the application not-procedural. If it's having side effects, it's procedural in a sense. “Procedural” is a structural paradigm; unstructured imperative code (old-school BASIC) has side effects but is not procedural in any sense (it is part of the broader category of imperative languages.) Also, “procedural” (or “imperative” or “functional”) is an attribute of programming languages, not applications/systems: Haskell is a pure functional programming languages, in which evaluating functions has no side effects, but it can define systems that have effects. |
|
> Also, “procedural” (or “imperative” or “functional”) is an attribute of programming languages, not applications/systems:
It can be an attribute of programs regardless of language. It is possible to write functional-style code in C and procedural code in Haskell (just do everything in the IO monad!).
> Haskell is a pure functional programming languages, in which evaluating functions has no side effects, but it can define systems that have effects.
That's a bit of a fiction. Pure functions are pure, yes, but you can have impure functions -- Haskell is only interesting because you can have impure functions (otherwise every Haskell program would compile down into a constant), and what's really interesting about Haskell is the ideas that have evolved in its community about how to deal with impure functions.