 A notable restriction of this let is that the name "f" is not defined in "M", since "M" is outside the scope of the abstraction binding "f"; this means a recursive function definition cannot be used as the "M" with let.The more advanced letrec syntactic sugar construction that allows writing recursive function definitions in that naive style instead additionally employs fixed-point combinators.Recursion is the definition of a function using the function itself.