Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

9
  • thx for nice explanation !! Commented Oct 21, 2018 at 14:50
  • 1
    @RahulAgarwal You may find this answer interesting, it nicely captures a tangential concept of establishing truths vs. describing the steps. I also like the phrase "declarative languages contain side effects while imperative languages do not" - usually functional programs has clean and very visible cuts between the stateful code dealing with outside world (or executing some optimized algorithm) and purely functional code. Commented Oct 25, 2018 at 22:00
  • 1
    @Frax : thanks !! I will look into it. Also recently came across Rich Hickey talk on Value of values It is really brilliant. I think one thumb rule - "work with values and expression rather than working with something holding value and can change" Commented Oct 26, 2018 at 6:59
  • 1
    @Frax : Also it is fair to say that FP is an abstraction over imperative programming - because ultimately someone have to instruct machine on "how to do", right ? If yes, then isn't imperative programming have more low level control compared to FP ? Commented Oct 27, 2018 at 13:36
  • 1
    @Frax: I would agree with Rahul that imperative is lower level in the sense that it is closer to the underlying machine. If hardware could make copies of data at no cost, we would not need destructive updates to improve efficiency. In this sense, the imperative paradigm is closer to the metal. Commented Oct 29, 2018 at 6:51