Expresiones condicionales: if... then...else (F#)
La expresión if...then...else ejecuta diferentes bifurcaciones de código y se evalúa como un valor distinto según la expresión booleana especificada.
if Boolean-expression then expression1 [ else expression2 ]
Comentarios
En la sintaxis anterior, se ejecuta expression1 cuando la expresión booleana se evalúa como true; de lo contrario, se ejecuta expression2.
A diferencia de lo que sucede en otros lenguajes, la construcción if...then...else es una expresión y no una instrucción. Eso significa que genera un valor, que es el valor de la última expresión de la bifurcación que se ejecuta. Los tipos de los valores generados en cada bifurcación deben coincidir. Si no hay una bifurcación else explícita, su tipo es unit. Por consiguiente, si el tipo de la bifurcación then es cualquier tipo distinto de unit, debe haber una bifurcación else con el mismo tipo de valor devuelto. Al encadenar expresiones if...then...else se puede utilizar la palabra clave elif en lugar de else if; son equivalentes.
Ejemplo
En el ejemplo siguiente, se muestra cómo utilizar la expresión if...then...else.
let test x y =
if x = y then "equals"
elif x < y then "is less than"
else "is greater than"
printfn "%d %s %d." 10 (test 10 20) 20
printfn "What is your name? "
let nameString = System.Console.ReadLine()
printfn "What is your age? "
let ageString = System.Console.ReadLine()
let age = System.Int32.Parse(ageString)
if age < 10
then printfn "You are only %d years old and already learning F#? Wow!" age