[grammarians] ambiguity with method call?

Brian Watt bwatt at austin.rr.com
Tue Nov 29 19:30:03 EST 2005


Minor alternative syntax:

def foo
  [a,b] # removed return
end
foo[1]

and

def foo x
  [a,b] # replaced ...
end
foo [1] # same as foo([1]), note: ruby 1.8.1-15 issues "warning: parenthesize argument(s) for future version"

Sincerely,
Brian Watt

Terence Parr wrote:

>Howdy,
>
>What does
>
>foo [1]
>
>parse as?  foo could be a variable and then foo is a simple array var:
>
>foo = [a,b]
>foo[1]
>
>If foo is a method, it could return an array and then you could  
>access the 1st element:
>
>def foo
>   return [a,b]
>end
>foo[1]
>
>It could also be a method with args:
>
>def foo x
>...
>end
>foo [1] # same as foo([1])
>
>This 5x ways to do anything syntax is truly a burden for the  
>implementor (and as a user one of the reasons I hated perl).   
>Regardless, is this a true *syntactic* ambiguity as I suspect? I.e.,  
>you need to simply pick an interpretation by dictum in the manual?
>
>Thanks,
>Ter
>
>_______________________________________________
>Rubygrammar-grammarians mailing list
>Rubygrammar-grammarians at rubyforge.org
>http://rubyforge.org/mailman/listinfo/rubygrammar-grammarians
>
>
>  
>



More information about the Rubygrammar-grammarians mailing list