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 
> 
> 

Reply via email to