¿Hay alguna biblioteca de programación funcional para Objective-C?Biblioteca de programación funcional para Objective-C
Respuesta
Usted podría intentar FunctionalKit
FunctionalKit es un intento de utilizar paradigmas funcionales en Objective-C. Es un conjunto de tipos funcionales de bajo nivel & API. Contiene tipos tales como, opción, etc. que le permiten escribir código de seguridad correcto, limpio, ajustado, sucinto y (cuando sea posible). También proporciona conceptos más avanzados, como funciones de elevación en mónadas.
Objective-C no es un lenguaje de programación funcional (es muy claro OO de procedimiento), por lo que no veo cómo habría tal cosa. Si está buscando compatibilidad con lambdas y simultaneidad, para eso está Grand Central Dispatch en 10.6.
Pseudo-funcional, si te gusta ... Estoy buscando algo en el espíritu de http://functionaljava.org/ y http://code.google.com/p/lambdaj/ para Java. – luvieere
Considero un cumplido que los únicos votos negativos que recibo son sin comentarios de acompañamiento. – Chuck
Nitpick: Lambdas no son un resultado de GCD; son parte de cómo usas GCD. Echa un vistazo a FunctionalKit, por cierto. Es posible escribir código limpio, principalmente funcional y seguro en Objective-C. –
Puede utilizar Functional.m para la programación funcional en Objective-C. Se hace un uso intensivo de los bloques y contiene los sospechosos habituales de programación funcional, como un mapa, reducir, filtrar, rechazar, etc
También podría probar OCTotallyLazy, un puerto de la biblioteca de Java TotallyLazy.
Por ejemplo, la cartografía de un NSArray se puede hacer de la siguiente manera:
[array(@"one", @"two", @"three", nil) map:^(NSString *item){
return [item uppercaseString];
}];
// Returns array(@"ONE", @"TWO", @"THREE", nil)
También hay un conjunto de macros disponibles que permiten una sintaxis más corta, por ejemplo:
#define TL_LAMBDA_SHORTHAND
[array(@"one", @"two", @"three", nil) map:_([_ uppercaseString])];
// Returns array(@"ONE", @"TWO", @"THREE", nil)
También proporciona su propio tipo de colección, Sequence, que evalúa los mapas, los filtros, etc.
Aquí hay una guía sobre cómo usar TotallyLazy: http://intrepidis.blogspot.com/2013/07/using-totallylazy-functional-library.html –
de forma perezosa soy fanático de underscore.m.
- 1. ¿Existe una biblioteca de programación funcional para .NET?
- 2. SÓLIDO para programación funcional
- 3. Programación funcional en C++
- 4. Documentación de programación funcional
- 5. Arquitectura de programación funcional
- 6. Modelo de máquina para programación funcional
- 7. Scala gimnasia de programación funcional
- 8. Programación funcional aplicada
- 9. programación funcional en Java
- 10. Haskell - Programación funcional Ayuda
- 11. Programación funcional: Efectos secundarios
- 12. Programación funcional pura para la GPU
- 13. Comentarios adecuados para la programación funcional
- 14. Programación funcional: Mejor plataforma/Entorno
- 15. Programación funcional en plantas nucleares?
- 16. Programación funcional pura en D
- 17. ¿Qué es zip (programación funcional?)
- 18. ¿Qué lenguaje de programación funcional debería elegir como primer lenguaje de programación funcional?
- 19. Punto de definición de la programación funcional
- 20. Introspección de lenguajes de programación funcional
- 21. Diagramas de flujo de programación funcional
- 22. cola Funcional De Programación En Scala
- 23. ¿La programación funcional es un subconjunto de la programación imperativa?
- 24. Acerca de la programación de estilo funcional
- 25. Fragmentos de programación funcional de Python
- 26. Ordenando en lenguajes de programación funcional
- 27. Buscando el Léxico de Programación Funcional
- 28. Casos de uso no numéricos para programación funcional?
- 29. CMS en el lenguaje de programación funcional
- 30. ¿XSLT es un lenguaje de programación funcional?
Parece que esto realmente hace que la programación de estilo funcional sea más difícil que las lambdas incorporadas y los métodos asociados en 10.6 que mencioné en mi respuesta. – Chuck
Pruebe la rama Bloques de FunctionalKit. También escribí un sistema para ajustar automáticamente cualquier operación en un tipo de Opción en tiempo de ejecución, que lanzaré pronto. Los bloques y el badassery de tiempo de ejecución hacen de FunctionalKit una herramienta muy útil, que he utilizado ampliamente en mis dos aplicaciones de iPhone más recientes. –