In a post on the Mathematica Community, Anton Antonov uses a syntax that I have never seen. It is the prefix function @ combined with the Times operator *. The combination appears to bind the command prefixed by the @ sign to the following command, such that the two commands are applied together to an expression. The example is:
titanicData = Flatten@*List@@@ExampleData[{"MachineLearning", "Titanic"}, "Data"];
What I see happening here is that the List command is applied at Level 1 of the List, that is to the first Rule:
{"1st", 29., "female"} -> "survived"
and converts it from a Rule to a nested List
{{"1st", 29., "female"}, "survived"}
and then the Flatten command is applied "immediately" to this Level 1 List in order to remove the nesting:
{"1st", 29., "female", "survived"}
And then this "combined command" (bound by the precedence of the Times operator?) is applied to each Level 1 expression in the example data list (as is expected by the @@@ Apply syntax).
So, I have three questions:
- Is my summary above intelligible?
- How would this be better stated?
- Where is this documented?
Unfortunately, there is one further question:
- Is this just obvious to everyone and I am having a brain fart?
Thank you in advance for some enlightenment
@*
. $\endgroup$