Ventajas de F#
Mayor simplicidad al momento de declarar variables, aunque F# es un
lenguaje tipado nos permite declarar objetos de manera mas general y
no tan especifica .
Nos permite utilizar expresiones lambda , las cuales nos ayudan para la
declaración de funciones en la operación de colecciones de manera mas
efectiva y menos tediosa.
Generaliza automáticamente los parámetros que declaramos en cada
función dada teniendo la dependencia de un tipo específico de dato por
medio de un analisis mediante una exprecion denominada “max”.
es compatible y dinamico con otros lenguajes de programacion lo que le
da mucha versatilidad con sitios web, bases de datos, aplicaciones , etc.
Ejecución inmediata de los código sin necesidad de compilarlos
previamente para mejorar la búsqueda de problemas sin esperar la
compilación.
Desventajas de F#
Posee un soporte muy pobre o aveces nulo para el desarrollo de
aplicaciones web, de android o en IOS .
Muy pocos desarolladores lo utilizan en promedio hay mas o menos 100
personas que usan C# por cada que usa F#.
Su refactorización tiene un soporte minimo lo que lo deja casi sin
herramientas de interfaz gráfica de usuario o GUI .
Es fuertemente desplazado por C# en cuestiones de su uso en la
programacion.
Nota: en si el programa no es malo pero debido a su pobre mantenimiento
tiende a se muy desplazado por C# y esto causa que no se use mucho en
programacion .
Códigos de ejemplo F#
Ejemplo 1
-Iteración usando un ciclo 'for'
let printList lst =
for x in lst do
printfn "%d" x
-Iteración usando una función de alto nivel
let printList2 lst =
[Link] (printfn "%d") lst
- Iteración usando una función recursiva y pattern matching
let rec printList3 lst =
match lst with
| [] -> ()
| h :: t ->
printfn "%d" h
printList3 t
Ejemplo 2
-Detectando números primos
let isPrime (n:int) =
let bound = int (sqrt (float n))
seq {2 .. bound} |> [Link] (fun x -> n % x <> 0)
-Usando async workflows
let primeAsync n =
async { return (n, isPrime n) }
-Retornando primos entre m y n usando hilos
let primes m n =
seq {m .. n}
|> [Link] primeAsync
|> [Link]
|> [Link]
|> [Link] snd
|> [Link] fst
-Corriendo una prueba
primes 1000000 1002000
|> [Link] (printfn "%d")