In l3basics
module there are two methods provided for each command generating function. The one requires the function signature to be provided, whereas the second does not.
Since the second is more concise, are there any advantages of using the one rather than the other? (Except of course in the obvious case where one needs to remove one token completely, such as a hypothetical \removefirstoftwo
case etc and the second method cannot be applied).
I provide a MWE illustrating the two approaches.
\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\cs_new:Npn \exampleone:nn #1 #2 {#1 #2}
\cs_new:Nn \exampletwo:nn{#1 #2}
\exampleone:nn {one~}{two~}
\exampletwo:nn {three~}{four}
\ExplSyntaxOff
\end{document}