Arbitrary abbreviations in phobos considered ridiculous
Nick Sabalausky
a at a.a
Thu Mar 8 01:26:11 PST 2012
"Jonathan M Davis" <jmdavisProg at gmx.com> wrote in message
news:mailman.214.1331187413.4860.digitalmars-d at puremagic.com...
> On Thursday, March 08, 2012 00:52:57 Nick Sabalausky wrote:
>> "Ary Manzana" <ary at esperanto.org.ar> wrote in message
>> news:jj94mb$1i7v$1 at digitalmars.com...
>>
>> > Here's something I wrote today:
>> >
>> > parent_ids = results.map{|x|
>> > x['_source']['parent_ids']}.flatten.uniq.compact
>> > Hash[Site.find(parent_ids).map{|x| [x.id, x]}]
>>
>> When you format it like that (that is to say, when you *don't* format
>> it),
>> yea, it's unreadable. Which is why I do such things like this:
>>
>> parent_ids =
>> results
>> .map{|x| x['_source']['parent_ids']}
>> .flatten.uniq
>> .compactHash[
>> Site.find(parent_ids).map{|x| [x.id, x]}
>> ]
>
> I actually tend to find code like that hard to read, because all of the
> operations are inside out in comparison to normal. But since the only
> difference between his example and yours is the formatting, I agree yours
> is
> easier to read. Still, I'd much prefer if such code didn't use UFCS, since
> I
> find it much harder to read that way. It's just so backwards.
>
Aside from the problems of excess paren nesting, I tend to think this is
backwards:
foo(bar(baz(x+2)))
...because the order it's read/written is the complete opposite of the order
of exectution. First "x+2" is evaluated, then "baz", then "bar", then "foo".
Ie, it's executed right-to-left even though you read/write it left-to-right.
Completely backwards. Contrast that with:
(x+2).baz().bar().foo()
...which we may be less accustomed to (unless you think of it like bash
piping), but in addition to the decrease in nesting, it's written and read
in the *same* order as exection: left to right. This also means that it's no
longer the complete reverse of statements which are (sensibly)
left-to-right:
y = x+2; baz(); bar(); foo();
If I were writing code in Arabic, I would probably like
"foo(bar(baz(x+2)))". (I would also wonder "What a minute, when did I learn
Arabic? How did I manage to learn a langauge without even knowing? This is
really weird! But fun. Wheee!!")
More information about the Digitalmars-d
mailing list