What compiler/front end are you using that accepts <multiply> and <subtract> tags? Mine only takes <funccall> (equivalent to <apply>). I'd write it like this:
<define name="f">
<lambda args="x">
<apply func="*">
<variable name="x" />
<apply func="f">
<apply func="-">
<variable name="x" />
<int value="1" />
</apply>
</apply>
</apply>
</lambda>
</define>If the function the value of a sub-expression, leave out the func="..." part and the first sub expression is used as the function instead.