"Nick Sabalausky" <a@a.a> wrote in message news:jf79sh$2l7b$1...@digitalmars.com... > "Jacob Carlborg" <d...@me.com> wrote in message > news:jf6e7a$1929$1...@digitalmars.com... >> >> method: >> no parameters - parentheses are optional > > FWIW, I always do a double-take when I see code like: > > functionName; > //or > object.functionName; > > It sets off all mannar of "no-effect expression!" bells and buzzers in my > head every time I look at it, which I then have to silence. >
Also it doesn't help that using the function name by itself (with no parens or &) can be used to pass a function as a template alias parameter (or just alias a function), instead of passing the result of the function call as the argument. Plus I've spent time in other langauges where using a function name without parens is the way to refer to a function itself, rather than invoke the function. That's something I very much like: "foo" refers to the function, "foo()" calls the function. Period. End of story. But in D, while "foo()" calls a function, refering to a function is a mess: usually it's "&foo", but if you're aliasing it or passing it as a template alias parameter than it's "foo". But then if you use "foo" in other places, it calls the function instead of referring to it! Bleh!!! Messy, messy.