I would be very happy to see that change. -- John
On Jun 12, 2014, at 9:56 AM, Stefan Karpinski <[email protected]> wrote: > Maybe the solution is to make it a syntax error to call a function with a > space between the function name and the argument list... > > > On Wed, Jun 11, 2014 at 10:47 PM, John Myles White <[email protected]> > wrote: > Personally, I think the real problem here is the fact that macros take > optional parentheses. Your example seems like it should work, but it > effectively was the same as doing: > > @printf(("%d,%d\n", 1, 2)) > > I've started always using parentheses with macros because it helps to avoid > some of these issues. > > -- John > > On Jun 11, 2014, at 7:45 PM, J Luis <[email protected]> wrote: > >> Hmm, if it has to be, it has to be but the error message is really >> misleading. >> >> ... and BTW the manual example has a space >> >> @name (expr1, expr2, ...) >> >> >> >> Quinta-feira, 12 de Junho de 2014 3:26:39 UTC+1, Pontus Stenetorp escreveu: >> On 12 June 2014 11:06, J Luis <[email protected]> wrote: >> > >> > Hi, it took me a while and a good dose of swearing to figure this out >> > >> > julia> @printf ("%d,%d\n", 1,2) >> > ERROR: @printf: first or second argument must be a format string >> > >> > julia> @printf("%d,%d\n", 1,2) >> > 1,2 >> > >> > The difference is only the space between the 'printf' and '(' >> > Does it have to be like that? And can the error message be more correct? >> >> The issue is really with the way macros handle their arguments: >> >> http://julia.readthedocs.org/en/latest/manual/metaprogramming/#macros >> >> This in combination with the fact that `one(Int)` and `one (Int)` are >> equivalent, but `@printf("%d", 17)` and `@printf ("%d", 17)` are not. >> From my own naive stand-point I would vouch for disallowing spaces >> before the opening parenthesis for function calls a'la `one (Int)`. >> This, in my opinion, is bad style anyway. But perhaps I am missing >> some case where it would be useful. >> >> Regards, >> Pontus Stenetorp > >
