I have been reading alot about functional programming and f#. I have a snippet of code that I cannot understand. I am familiar with recursive programs but this particular code is bugging me
open System
let rec fact x =
if x < 1 then 1
else x * fact (x - 1)
fact 6
In this snippet of code there is no where in the code that terminates the recusion. How does this program know when to stop. If I programmed this in c# I would tell the program to stop recursing when the index or iterator is higher then 6.
The recursion stops when it
xis less than1because the result of the expression is then1In C# the function would look as follows:
Pure functional programming is interesting because there is never a return, all the program does is evaluate. You need to ask yourself ‘What does this expression evaluate to?’