Thread overview
S-Expressions
Jan 22, 2013
qznc
Jan 23, 2013
bearophile
Jan 23, 2013
bearophile
Jan 24, 2013
qznc
Jan 25, 2013
bearophile
Jan 25, 2013
qznc
January 22, 2013
After "Atomic Updates" from rosettacode.org, here is "S-Expressions".

Problem: http://rosettacode.org/wiki/S-Expressions

Code: http://dpaste.dzfl.pl/fd485808

Comments, improvements?
January 23, 2013
qznc:

> Comments, improvements?

See RosettaCode, only a little reformatting, cleaning, etc.

Bye,
bearophile
January 23, 2013
We are getting to the Mathematica again:
http://rosettacode.org/wiki/Rosetta_Code/Rank_languages_by_popularity

Bye,
bearophile
January 24, 2013
On Wednesday, 23 January 2013 at 17:49:23 UTC, bearophile wrote:
> We are getting to the Mathematica again:
> http://rosettacode.org/wiki/Rosetta_Code/Rank_languages_by_popularity
>
> Bye,
> bearophile

We're even now ;)

http://rosettacode.org/wiki/Rosetta_Code/Rank_languages_by_popularity#D
January 25, 2013
qznc:

> We're even now ;)
>
> http://rosettacode.org/wiki/Rosetta_Code/Rank_languages_by_popularity#D

I have cut some lines, and I have used a more functional style, that fits well for this entry. Compared to the C++ entry this D entry is nicer.

I greatly prefer the "verbose" option of the Python regex. And "g" for regexes should be the default.


This D code:

auto pairs = categories.match(r2)
             .filter!(m => languages.canFind(m[1]))()
             .map!(m => tuple(m[2].to!uint(), m[1].dup))()
             .array();

With a Python-like syntax becomes nicer:

auto pairs = [(r.to!uint, l.dup) for l,r in
              categories.match(r2)
              if l in languages];

Bye,
bearophile
January 25, 2013
On Friday, 25 January 2013 at 01:52:27 UTC, bearophile wrote:
> qznc:
>
>> We're even now ;)
>>
>> http://rosettacode.org/wiki/Rosetta_Code/Rank_languages_by_popularity#D
>
> I have cut some lines, and I have used a more functional style, that fits well for this entry. Compared to the C++ entry this D entry is nicer.
>
> I greatly prefer the "verbose" option of the Python regex. And "g" for regexes should be the default.
>
>
> This D code:
>
> auto pairs = categories.match(r2)
>              .filter!(m => languages.canFind(m[1]))()
>              .map!(m => tuple(m[2].to!uint(), m[1].dup))()
>              .array();
>
> With a Python-like syntax becomes nicer:
>
> auto pairs = [(r.to!uint, l.dup) for l,r in
>               categories.match(r2)
>               if l in languages];


I completely agree. The functional style is better and I miss list comprehensions as well. It does not require new keywords, so maybe it can be added to D at some point.