On Mon, Jun 27, 2011 at 8:23 AM, Chris Seberino <[email protected]> wrote:
>
>
> On Jun 24, 11:59 pm, Jason Grout <[email protected]> wrote:
>> sage: implicit_mul('diff(f,x)(3)', level=10)
>> 'diff(f,x)*(3)'
>>
>> which is definitely not what I intended.
>
> Jason
>
> Would you agree a good robust solution to your issue would be for an
> implicit_mul level that *ONLY* converted spaces to multiplication? In
> other words....
>
> This should work...
>
> (1 + 2) (3 + 4) # Notice space between parens.
>
> This should/would give an error...
>
> (1 + 2)(3 + 4) # Notice no space between parens.
That doesn't solve the call mangling issue:
sage: f(x) = x+1
sage: g(x) = x^2
sage: var('a,b')
(a, b)
sage: (f) (a)
a + 1
sage: f + g
x |--> x^2 + x + 1
sage: (f + g) (a + b)
(a + b)^2 + a + b + 1
> I reread the implicit_mul docs at
> http://www.sagemath.org/doc/reference/sage/misc/preparser.html
> and I cannot find a level between 3 and 10 that does this.
The levels aren't tight so that we can add levels if needed, however I
think it's a bad idea for the default level to make syntactically
valid Python into something that has a totally different meaning.
- Robert
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org