Dario,

I'm afraid I can't help. Firstly, I do not really understand your questions.
But even if I understood, I am not sure I could answer authoritatively.

On 05/22, Dario Sanfilippo wrote:
>
> On Fri, 22 May 2020 at 20:22, Oleg Nesterov <o...@redhat.com> wrote:
>
> > On 05/22, Dario Sanfilippo wrote:
> > >
> > > Sorry for the confusion. What I wanted to ask is: why aren't the extra
> > > parentheses making a difference? Because (0, (1,2,3)) is parsed as
> > > ((0),((1,2,3)), right?
>
>
> I missed a parenthesis, I meant that  (0, (1,2,3)) is parsed as ((0),
> ((1,2,3)))

Why do you think so? OK, please consider

        f(((x,y))) = x+y;
        f( (x,y) ) = x-y;

        process(x,y) = f((x,y));
        
note the compiler warning:

        WARNING : shadowed pattern-matching rule: (<x>,<y>) => x,y : -;
        previous rule was: (<x>,<y>) => x,y : +;

See? The extra parentheses make no difference.

And why do you think they should? IMO, this would be insane. Suppose you
change the compiler so that ba.count(((1,2,3))) returns 1. Now, what should
this program

        L1 = 1,2,3;
        L2 = (1,2,3);

        process = ba.count(L1), ba.count((L1)),
                  ba.count(L2), ba.count((L2));

output?

Or this one

        process = ba.count(par(i,3,i)), ba.count((par(i,3,i)));

?

The current rules are at least clear/understandable, and whatever you or
me think it is too late to change them.

Oleg.



_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to