1 is the file-handle for stdout, 2 is the file-handle for stderr. @ is applying the functions 1 and 2 using the argument you provided, e. See here for more info: http://code.kx.com/wiki/Reference/AtSymbol “A monadic function g with argument d can be evaluated by g@d or g . enlist d.”
So you are simply printing the value of the variable e to stdout and stderr. 3@e fails because you don’t have an file open with fd=3.