Вы не можете сделать это с помощью синтаксиса оператора вашего собственного изобретения (например, @@&
). Mathematica просто не имеет возможности изменять грамматику языка во время выполнения.
С пакетом Notation
вы можете получить хотя бы частично, но вы должны использовать символ, который не имеет смысла в Mathematica, и, возможно, в большинстве случаев с одним из операторов без встроенного значения , но большинство (если они есть) не связываются как постфиксные операторы.
Здесь, например, я буду использовать пакет Notations
, чтобы определить символ \[Wolf]
как общеизвестный псевдо-постфиксный оператор вместо @@&
:
In[1]:= Needs["Notation`"]
In[2]:= Notation[x_ \[Wolf] \[DoubleLongLeftRightArrow] (x_ @@ # &)]
In[3]:= f=#2+#^2/#3& \[Wolf]
Out[3]= (#2+#1^2/#3&) \[Wolf]
In[4]:= f[{a,b,c}]
Out[4]= b+a^2/c
Я также добавлю скриншот, так как здесь используется нотация:
Где этот подход может потерпеть неудачу, так это в том, что вы не можете установить приоритет оператора для произвольного символа, такого как \[Wolf]
. Вместо этого вы можете использовать один из бессмысленных операторов, на которые я ссылался выше, но они также имеют фиксированный приоритет, который нельзя изменить.
Если вы нашли PrecedenceForm
в документации, вы можете получить краткую ложную надежду, но, как говорят в документации, это влияет только на печать, а не на оценку.
НТН!