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.
- 1This 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.Jörg W Mittag– Jörg W Mittag2019-04-14 06:56:28 +00:00Commented 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.Jack Rock– Jack Rock2019-04-15 11:19:11 +00:00Commented 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 stepsJack Rock– Jack Rock2019-04-15 11:19:19 +00:00Commented 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)jk.– jk.2019-05-14 11:44:39 +00:00Commented May 14, 2019 at 11:44
Add a comment |
How to Edit
- Correct minor typos or mistakes
- Clarify meaning without changing it
- Add related resources or links
- Always respect the author’s intent
- Don’t use edits to reply to the author
How to Format
- create code fences with backticks ` or tildes ~ ```
like so
``` - add language identifier to highlight code ```python
def function(foo):
print(foo)
``` - put returns between paragraphs
- for linebreak add 2 spaces at end
- _italic_ or **bold**
- indent code by 4 spaces
- backtick escapes
`like _so_` - quote by placing > at start of line
- to make links (use https whenever possible) <https://example.com>[example](https://example.com)<a href="https://example.com">example</a>
How to Tag
A tag is a keyword or label that categorizes your question with other, similar questions. Choose one or more (up to 5) tags that will help answerers to find and interpret your question.
- complete the sentence: my question is about...
- use tags that describe things or concepts that are essential, not incidental to your question
- favor using existing popular tags
- read the descriptions that appear below the tag
If your question is primarily about a topic for which you can't find a tag:
- combine multiple words into single-words with hyphens (e.g. design-patterns), up to a maximum of 35 characters
- creating new tags is a privilege; if you can't yet create a tag you need, then post this question without it, then ask the community to create it for you