Why D is not popular enough?

Seb via Digitalmars-d digitalmars-d at puremagic.com
Thu Sep 1 10:10:00 PDT 2016


On Thursday, 1 September 2016 at 12:04:51 UTC, qznc wrote:
> On Thursday, 1 September 2016 at 08:04:00 UTC, Bienlein wrote:
>> D has a lot to offer with regard to functional programming. It 
>> has pure functions and true immutable classes (true = also sub 
>> objects become immutable), which Scala all doesn't have 
>> (because of restrictions of the JVM). Does D have tail call 
>> recursion optimization? I don't know, actually. If D had that 
>> and pattern matching, it would beat Scala with all it's hype 
>> by a big leap.
>
> D does not guarantee tail calls, but the compiler might 
> sometimes decide to do it. Functional programmer usually want 
> to guarantee, so they don't have to write a loop. The downside 
> of TCO is that the stack trace is missing frames, which can be 
> very confusing.

There's a DIP about adding a TCO attribute/pragma:
https://github.com/dlang/DIPs/pull/6

FYI: There's some discussion about it's benefit in comparison to 
functional language D does have loops and it's a lot easier to 
write and read them.
If you want to chime in, please do so at the PR discussion.

> D has no syntax for pattern matching, but some library support:
> https://p0nce.github.io/d-idioms/#Recursive-Sum-Type-with-matching

Yep it's pretty easy to do within library code, if you use an 
object chain you might also want to have a look at castSwitch.

https://dlang.org/phobos/std_algorithm_comparison.html#.castSwitch


More information about the Digitalmars-d mailing list