Question: Composition of D's

The expression (D[1]@D[2])(f) is equivalent to D[1,2](f). On grounds of that, I would naively have expected that (D[1]@D[1])(f) was equivalent to D[1,1](f). But it seems not to be, their lprint-versions being different:

expr1 := (D[1]@D[1])(f):
expr2 := D[1,1](f):
simplify(expr1 - expr2);
simplify(expr1 - expr2,`@`);
lprint(expr1);
lprint(expr2);

(D[1]@@2)(f)
D[1, 1](f)

I am curious to know why it has been implemented this way? Have I fundamentally misunderstood something?

Please Wait...