Sign up ×
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 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 is forth 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


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.