Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Bug introduced in 8.0.0 and fixed in 9.0.0


Could someone explain the odd behavior of the Derivative function when drawing arguments from lists? We have,

Derivative[1][a + #*(b - c) &]
(* b - c & *)

and analogously,

Derivative[1][{a1, a2} + #*({b1, b2} - {c1, c2}) &]
(* {0, 0} + {b1, b2} - {c1, c2} + ({0, 0} + {0, 0}) #1 & *)

So far so good. However,

lst = {{a1, a2}, {b1, b2}, {c1, c2}};
Derivative[1][lst[[1]] + #*(lst[[2]] - lst[[3]]) &]
(* {lst[[2]] - lst[[3]], lst[[2]] - lst[[3]]} & *)

Why is the output in the last case not,

lst[[2]] - lst[[3]] &

as one would expect based on the previous examples? Why do I get a list of lists as an answer, instead of just a list? (And what should I do to get the expected result?)

share|improve this question
    
What version are you running? I cannot reproduce your final result on v9.0.1. –  rcollyer Apr 29 '13 at 20:53
    
I'm running 8.0.1.0. Could it be a bug that's been corrected? –  Ted Pudlik Apr 29 '13 at 20:57
    
Quite possibly. I can reproduce it on v8.0.1, and v8.0.4, but not on v9.0.0, or higher. So, retagging. I'll let someone else add bugs. –  rcollyer Apr 29 '13 at 20:59
    
@rcollyer Reproduced here too. Tagged. –  belisarius Apr 29 '13 at 21:48
    
I updated to v9.0.1 and get the expected result now. Thanks for your help! –  Ted Pudlik Apr 29 '13 at 22:01

1 Answer 1

As indicated in the comments, this has been fixed as of version 9.0.0.

lst = {{a1, a2}, {b1, b2}, {c1, c2}};                                   
Derivative[1][lst[[1]] + #*(lst[[2]] - lst[[3]]) &]                     

(* lst[[2]] - lst[[3]] & *)
share|improve this answer
    
This is perhaps something to look at? At least the non-working example should be removed from the documentation. –  Szabolcs Aug 9 at 9:29
    
@Szabolcs Agreed, in fact there are several open bug reports for that issue, and I've updated them to link to the MSE discussion. Personally I'd prefer it to work as it used to (long ago), but updating the documentation may be more realistic at this point. –  ilian Aug 9 at 16:15

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.