La mayoría de la programación móvil todavía no es muy funcional, pero hay indicios de que está aumentando. Swift ciertamente tiene más características funcionales que el Objetivo C, como las sensatas funciones de orden superior. Además, con Java 8, hay más posibilidades funcionales en Java con expresiones lambda.
Recuerde también que hay formas de escribir código funcional incluso cuando no está necesariamente usando un lenguaje funcional. La programación funcional a veces se trata tanto del estilo como del lenguaje. Supongamos que tiene este código de Objetivo C de este estilo:
@property (no atómico, fuerte) XType * x;
@property (no atómico, fuerte) YType * y;
@property (no atómico, fuerte) ZType * z;
- ¿Qué plataforma es mejor para crear una aplicación híbrida?
- ¿Qué lenguaje de programación se usa en una aplicación sin conexión?
- ¿Cuál es la mejor manera de comenzar con las pruebas móviles?
- ¿Puedes cambiar una cuenta de desarrollador de Apple a una empresa de un individuo?
- ¿Cuál es la mejor empresa de desarrollo de aplicaciones de Android en Lucknow?
– (nulo) viewDidLoad {
[super viewDidLoad];
[self updateMyViewController];
}
– (nulo) updateMyViewController {
// Realizar lógica usando self.x, self.y
// Asigna variables self.z
}
Puede hacer que este código sea “más funcional” haciendo lo siguiente:
– (nulo) viewDidLoad {
[super viewDidLoad];
ZType * newZ = [self performLogicWithX: self.x Y: self.y]
self.z = newZ;
}
– (ZType *) performLogicWithX: (XType *) myX Y: (YType *) myY {
// Realizar lógica para obtener el valor z
volver z;
}
Consideraría esta segunda muestra “más funcional” en el sentido de que “performLogic …” ahora es una función pura. No tiene ningún efecto secundario. Toma todos los parámetros que necesita y devuelve su resultado. Por supuesto, viewDidLoad todavía tiene efectos secundarios, pero esto es inevitable. Tenemos que poner nuestros efectos secundarios en alguna parte. Solo queremos hacer que todo nuestro código sea “puro” como sea posible. Ahora podría refactorizar fácilmente la función performLogic. También es mucho más fácil de probar.
Por supuesto, a diferencia de un lenguaje funcional puro como Haskell, no puede imponer esta pureza. Otro programador podría arruinar fácilmente la pureza de performLogic. Esa es la desventaja.
Os animo a echar un vistazo a Functional Swift para obtener más ideas aquí.