I often need to extract to restrict value lists to sublists, ie if vals gives values of vars={x1,x2,x3,x4}, and I need values of svars={x2,x4} I do restrict[list,vars,svars] where
restrict[vars_, svars_, vals_] :=
Extract[vals, Flatten[Position[vars, #] & /@ svars, 1]]
I’d like to improve code readability, perhaps by defining following custom notation for restrict[vars,svars,vals]

(source: yaroslavvb.com)
My questions are
- What is a good way to implement this?
- Is this a good idea altogether?
Good notations can be very useful – but I’m not sure that this particular one is needed…
That said, the
Notationpackage makes this pretty easy. As there are many hidden boxes when you use the Notation palette, I’ll use a screenshot:You can see the underlying
NotationMake*downvalues construct by using theAction -> PrintNotationRulesoption. In[4] in the screenshot generates