# Using several anonymous functions mixed together

This works:

list // BarChart[#[[2]], ChartLabels -> DateString @@@ #[[1]], ChartStyle -> "Pastel"] &


This doesn't:

list // BarChart[#[[2]], ChartLabels ->
DateString[#, {"ShortDay", "/", "ShortMonth"}] & @@@ #[[1]], ChartStyle -> "Pastel"] &


The difference is that in the second version DateString needs to be an anonymous function. But the entire expression already is an anonymous function. Since this won't work, how can I do what I want to do? Is the best way perhaps to define DateString[#,..] somewhere else, or can I solve this with parentheses or something like that?

-

You can always use Function to create anonymous functions:

Function[{a},a^2]


is equivalent to

#^2&


and can be used as such, but it is unambiguous.

It can be used as:

Function[{a},a^2][2]

(* ==> 4  *)

-
ChartLabels -> (DateString[#, {"ShortDay", "/", "ShortMonth"}] & @@@ #[[1]])

You can read this documentation page for more info on operator precedences. In your specific case, Rule or -> has a higher precedence than Function or &.