BNF syntax for a recursive function?
Are you aiming to simply allow recursive functions or specify only recursive functions. The following grammar allows recursive functions:
function      := id '(' parameter ')' '=' function_body ;
function_body := conditional
               | expression
               ;
expression    := function_call
               | &lt;other expression types&gt;
               ;
function_call := id '(' parameter ')' ;

Specifying only recursive functions would require a context-aware grammar (BNF is context-free). You can approach the problem outside of the grammar specification though and check for recursive functions later in your parser / compiler pipeline.
Checking for recursion outside of the grammar allows you to more easily identify cyclic recursion (not just f calling f but something like f -&gt; a -&gt; b -&gt; c -&gt; f).