Question: When is the composition operator @ necessary?

Here is an example where (f@g)(..) cannot be written f(g(..)): When is @ necessary?

restart:
with(Statistics):
interface(displayprecision=4):
S := Sample(Uniform(-1, 1), 10):
((max-min)/Mean)(S);  # correctly evaluated

abs(Mean(S)); # correctly evaluated

((max-min)/abs(Mean))(S);  # unevaluated value: abs(Mean) appears as  |Statistics:-Mean| 

((max-min)/(abs@Mean))(S);  # correctly evaluated

 

Please Wait...