|
There are a variety of reasons, but the simplest one to understand is that functional programming makes immutability explicit and traditionally either enforces or requires it. Entire classes of errors associated with parallel computation are impossible when acting on immutable data. For instances, consider the humble data race: when the data is immutable, it's meaningless to speak of ensuring that one thread can only read from a variable when another is done writing to it, and all the strategies to ensure this won't happen are unnecessary when the semantics of the language eliminate the entire concept of writing to a variable. This is an oversimplification, of course.
|
# ¿ Mar 25, 2016 00:07 |
|
|
# ¿ May 14, 2024 11:58 |
|
It's an attempt to further increase our ability to "Make invalid values unrepresentable."
|
# ¿ Dec 2, 2016 04:06 |
|
Facebook uses it in production but I don't know to do what specifically.
|
# ¿ Feb 2, 2017 04:48 |
|
Clojure is the most modern of the mature lisps, I think.
|
# ¿ May 7, 2017 07:55 |
|
Pollyanna posted:I will admit that I have trouble understanding the advantage of having direct access to the AST of a function. At runtime, there isn't much. At compile-time, being able to emit functions programmatically is a very powerful form of metaprogramming.
|
# ¿ May 7, 2017 22:45 |
|
Guacamayo posted:How do I install Schemeon Windows? I trying to go through SICP. You might try Racket, which can be configured to use R6RS or other Scheme dialects rather than its own custom dialect.
|
# ¿ Jun 2, 2017 05:30 |
|
|
# ¿ May 14, 2024 11:58 |
|
Typing the Technical Interviewquote:Haskell is a dynamically-typed, interpreted language.
|
# ¿ Jun 16, 2017 21:58 |