On Sunday, 6 October 2013 at 16:02:24 UTC, Joseph Rushton
Wakeling wrote:
On 05/10/13 01:55, deadalnix wrote:
D has some really serious flaw when it come to functionnal
style.
Really? That's a shame. :-(
- Function aren't first class.
- Delegates break type system.
- Immutable object have identity issue that wouldn't show up
in a functional
language. It is unsure what the semantic around them is (and
if identity must be
preserved, then functional style is badly impaired).
- Many qualifier do start to not make any sense when using
functions as
arguments (inout for instance).
- Expect for type qualifier, it is impossible to express
return qualification
depending on the input(s qualification (and see point above,
that do not work
when using first class functions/delegates).
On implementation side, heap allocated values aren't optimized
to go on the
stack, ever. And the GC is unable to take advantage of
immutability. Note that
because everything is immutable in functional programming,
both are mandatory if
you don't want to trash your performances.
How much of this is actually a language problem (I imagine the
first-class functions and delegate issues are) and how much is
to do with implementation?
What comes before "On implementation side" is language problem.
What comes after is implementation problem.