On 10 October 2015 at 14:51, Jacob Carlborg via Digitalmars-d-announce < digitalmars-d-announce@puremagic.com> wrote:
> On 2015-10-10 03:52, Martin Nowak wrote: > > Scala and Ruby seem to do well with sloppy parens. >> > > A few notes about why Ruby doesn't have the same problems as D has: > > 1. Ruby has optional parentheses for all method calls, regardless if they > accept arguments or not > > 2. Ruby has a different syntax for calling lambdas from calling functions: > > def foo > end > > foo() # calling function > > a = -> { } > a.call # calling lambda > a.() # alternative syntax for calling lambda > > In Ruby, no one will ever use empty parentheses for calling a method. > > 3. You can not use the setter syntax for a "regular" method taking one > argument: > > class Foo > def bar(a) > end > > def foo=(a) # not the same name as "foo" > end > end > > a = Foo.new > a.bar = 3 # error > a.foo = 3 # ok > a.foo(3) # error > > It seems to be a misfeature of D to accept the equivalent of all three of those examples as valid.