>
> Martin R wrote: 
> > 
> > The symbol is actually provided in the internal representation of diff. 
>   
> > That's why I added 
> > 
> > -- l is a triple [function at dummy variable, dummy variable, evaluated 
> at] 
>
> But are you sure we can reuse it?  In the past such reuse lead 
> to unitended capture and bugs.  In fact, the bug you are trying 
> to fix is just example of unintended capture -- I missed checks 
> that y is used only once. 
>

I find it hard to be sure, but I think it is quite safe, because
otherwise the differentiation operator wouldn't work either.

Do you have an idea how to try to break it?

(1) -> f := operator 'f

   (1)  f
                                                          Type: 
BasicOperator
(2) -> ex := D(f(x,y), x)

   (2)  f  (x,y)
         ,1
                                                    Type: 
Expression(Integer)
(3) -> a := argument(first kernels ex)$Kernel EXPR INT

   (3)  [f(%A,y), %A, x]
                                              Type: 
List(Expression(Integer))
(4) -> %A := "hi"

   (4)  "hi"
                                                                 Type: 
String
(5) -> a := argument(first kernels ex)$Kernel EXPR INT

   (5)  [f(%A,y), %A, x]
                                              Type: 
List(Expression(Integer))
(6) -> ex::INFORM

   (6)  (eval (D (f %A y) %A) %A x)
                                                              Type: 
InputForm

Martin

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/6461316a-190e-484f-b067-4de118d5b3b9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to