Yep. More a a breakdown, might help or hinder, apologies in advance.

@ is prefix for attribute
@P is the position attribute of a point
@N is the normal attribute of a point
Because attributes can have different types (vector, float, int etc), there are prefixes to denote what you're talking about:
v@foo; // means @foo is a vector
i@bar; // means @bar is a integer
f@grep; // means @grep is a float
The 4 inputs of a wrangle are numbered 0,1,2,3. If you wanted to refer to the @P from input 1, you put opinput1_ between the @ and P, like this:
So if you wanted to be super canonical, to get position from the 0 input, you'd specify its a vector, the 0 input, and the P attribute:
In practice there's a few shortcuts you can take. Vex knows about frequently used attributes like P, N, Cd, so they don't need the type prefix. Also, if you don't specify the ‘opinput_n’ bit, it pulls from the 0 input. This is why can you just write
So in your case, you want to set N based on the input-0 point minus the input-1 point. In a wrangle, you write that pretty much as that sentence flows, first being all super canonical and smug coder:
v@opinput0_N = v@opinput0_P - v@opinput1_P;
and again being lazy coder; we don't need the type prefix (tho its a good habit to get into), and we don't need to specify opinput0_, as that'll be assumed. So that shortens to
Hope that helps!
-matt