Existe-t-il une bibliothèque de programmation fonctionnelle pour Objective-C?Bibliothèque de programmation fonctionnelle pour Objective-C
Répondre
Vous pouvez essayer FunctionalKit
FunctionalKit est une tentative d'utiliser des paradigmes fonctionnels en Objective-C. C'est un ensemble de types fonctionnels de bas niveau & APIs. Il contient des types tels que l'un ou l'autre, l'option, etc. qui vous permettent d'écrire un code correct, propre, serré, concis et (si possible) sûr. Il fournit également des concepts plus avancés tels que le levage de fonctions en monades.
Objective-C est pas un langage de programmation fonctionnelle (il est tout à fait clairement la procédure OO), donc je ne vois pas comment il y aurait une telle chose. Si vous recherchez un support de lambda et de simultanéité, c'est ce que Grand Central Dispatch est en 10.6.
si vous aimez Pseudo-fonctionnel, ... Je cherche quelque chose dans l'esprit de http://functionaljava.org/ et http://code.google.com/p/lambdaj/ pour Java. – luvieere
Je prends comme un compliment que les seules downvotes que je reçois sont sans commentaires d'accompagnement. – Chuck
Nitpick: Lambdas ne sont pas un résultat de GCD; ils font partie de la façon dont vous utilisez GCD. Découvrez d'ailleurs FunctionalKit. Il est possible d'écrire du code propre, principalement fonctionnel et typé-sécurisé dans Objective-C. –
Vous pouvez utiliser Functional.m pour la programmation fonctionnelle en Objective-C. Il utilise beaucoup de blocs et contient vos suspects de programmation fonctionnels habituels, comme la carte, réduire, filtre, rejeter, etc.
Vous pouvez également essayer OCTotallyLazy, un port de la bibliothèque Java TotallyLazy.
Par exemple, la cartographie NSArray peut se faire comme suit:
[array(@"one", @"two", @"three", nil) map:^(NSString *item){
return [item uppercaseString];
}];
// Returns array(@"ONE", @"TWO", @"THREE", nil)
Il y a aussi un ensemble de macros disponibles qui permettent une syntaxe plus courte, par exemple:
#define TL_LAMBDA_SHORTHAND
[array(@"one", @"two", @"three", nil) map:_([_ uppercaseString])];
// Returns array(@"ONE", @"TWO", @"THREE", nil)
Il fournit également son propre type de collecte, séquence, qui évalue paresseusement cartes, filtres, etc.
Voici un guide sur l'utilisation de TotallyLazy: http://intrepidis.blogspot.com/2013/07/using-totallylazy-functional-library.html –
Je suis un grand fan de underscore.m.
- 1. Programmation fonctionnelle pour les algorithmes de base
- 2. Nouveau en programmation fonctionnelle
- 3. Haskell - Aide à la programmation fonctionnelle
- 4. Méthodes d'effets secondaires dans purement langages de programmation fonctionnelle
- 5. efficacité du modèle de programmation fonctionnelle (spécifique Erlang)
- 6. question sans importance sur erlang et la programmation fonctionnelle
- 7. Dans une programmation fonctionnelle, comment appelleriez-vous ce genre d'opération?
- 8. Quelles sont les meilleures pratiques pour la programmation fonctionnelle et l'interaction avec les bases de données?
- 9. Analyseur AMF0 dans ObjectiveC
- 10. Créer un cercle/une bulle de couleur par programmation dans ObjectiveC et Cocoa
- 11. bibliothèque d'algèbre linéaire pour le langage de programmation D
- 12. Programmation fonctionnelle en C avec macro « supérieur Fonction de commande » générateurs
- 13. Navigateur Web par programmation Bibliothèque Java
- 14. Programmation C avec Eclipse (bibliothèque mystère)
- 15. Bibliothèque de musique basée sur le Web (concept de programmation)
- 16. Quelle technique en programmation fonctionnelle est difficile à apprendre mais utile par la suite?
- 17. Est-ce que des concepts comme Map et Reduce s'appliquent à tous les langages de programmation fonctionnelle?
- 18. Qu'est-ce que la décomposition fonctionnelle?
- 19. Programmation orientée aspect dans r: Toute bibliothèque disponible?
- 20. Aider avec le code GCC et ObjectiveC et Cygwin
- 21. Comment déplacer des variables non statiques de l'interface à l'implémentation dans objectiveC?
- 22. Bibliothèque de notification pour Windows
- 23. Bibliothèque de graphiques pour Flex
- 24. Modèle de programmation MVP Taligent pour .Net
- 25. L'outil pour la programmation visuelle
- 26. Tutoriels pour la programmation Wii
- 27. Représente la dépendance fonctionnelle de la base de données tridimensionnelle dans la 5ème forme normale
- 28. Accès par programmation à la bibliothèque de styles SharePoint à partir de C#
- 29. Programmation de prise C++ Windows
- 30. Bibliothèque pour Ruby
Il semble que cela rende la programmation de style fonctionnel plus difficile que les lambdas intégrés et les méthodes associées dans 10.6 que j'ai mentionné dans ma réponse. – Chuck
Essayez la branche Blocks de FunctionalKit. J'ai également écrit un système pour envelopper automatiquement toute opération dans un type d'option à l'exécution, que je publierai bientôt. Blocks et badassery au runtime font de FunctionalKit un outil très utile, que j'ai largement utilisé dans mes deux applications iPhone les plus récentes. –