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.

4
  • 1
    This doesn't have anything to do with being functional or not, though. It is a feature of the type system, not whether or not the language enforces referential transparency. E.g. Scala is an OO language that doesn't enforce referential transparency, and it can express the type of a Monad (all you need for that is higher-kinded generics), and it can even express type classes as a design patterns (using implicit objects and implicit parameters). There are research languages that are essentially Java + higher kinds, and those can express monads, too. Commented Apr 14, 2019 at 6:56
  • @JörgWMittag but if although pure functional languages are non-imperative, they often provide a facility for describing the effect of a function as a series of steps. Ok, but what this 'conversion method' is used to describe it as a series of steps? For example In a pure functional language, such as Haskell, all functions are without side effects, and state changes are only represented as functions that transform the state, which is explicitly represented as a first class object in the program. Commented Apr 15, 2019 at 11:19
  • I don't understand if 'function' representation use a model to allow to describe function itself to a series of steps Commented Apr 15, 2019 at 11:19
  • @JörgWMittag you are, of course right, this isn't strictly speaking related to functional nature of a language but HKTs, I think its still a valid observation though as OP seems to be comparing pure functional languages (which probably means Haskell) to imperative langauges that have recently added monads (which I took to mean C# & Java) Commented May 14, 2019 at 11:44