On 4/23/17 4:25 PM, Florian Mayer wrote:
>> That's not a reasonable expectation.
> Why not? Why is it not reasonable to expect an intuitive
> result from (())? The most intuitive thing, in my opinion,
> would be to use nameref for side effects by default, because in order
> to get a value from an id, (()) already follows namerefs.

The thing that makes that result intuitive for you is your opinion about
how things should work.  That's fine. I don't happen to share your opinion
of what is "intuitive" in this case.

However, it is unreasonable to expect

        var=bar
        (( var=7 ))

to do anything but assign a value to `var'.  Very few people, when asked,
would say that it were more intuitive to cause a variable named `bar' to
spring into existence with the value 7. If you want nameref behavior, you
have to explicitly declare it.


>> It's not indirection, and I am not sure why you show the completely
> I was mentioning that, not because I use „a mental model“ that falsely unifies
> both things, but because I wanted to point out that there exists something
> with a similar behavior.
> 
> And if ${!<varid>} does not portray some kind of indirection, what do you
> call it then?

That is variable indirection. It has superficially similar effects to what
we are discussing, which is arithmetic expansion; however, it has nothing
to do with the behavior of (( )) or $(( )).

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to