La plupart des programmeurs utilisent aujourd'hui Oops Concepts pour le développement de logiciels. P>
Mais certains d'entre eux sont également exposés à la programmation fonctionnelle. p>
Comment la programmation fonctionnelle influence-t-elle votre style de codage? p>
10 Réponses :
Je trouve qu'il est beaucoup plus facile d'écrire du code multi-fileté maintenant. P>
J'ai tendance à avoir moins de variables de niveau de classe qu'auparavant. P>
J'ai aussi tendance à avoir des interfaces fonctionnellement indépendantes ... à nouveau qui a un gain énorme en ce qui concerne la multi-filetage, car il peut réduire considérablement la quantité de verrouillage d'objet requise à condition que vos fils soient également fonctionnellement indépendants. P >
J'ai aussi tendance à avoir des cauchemars sur les bretelles de fermeture me chassant. P>
Deux choses se viennent à l'esprit provenant d'une programmation fonctionnelle que j'adopte: p>
+1, ces deux ces deux réduisent le couplage dans votre système.
presque mot pour le mot ce que je pense
Après avoir écrit une morceinte décente de Haskell signifie que c'est beaucoup plus facile pour moi d'utiliser LINQ vers SQL dans mon code C #. P>
Je me penche maintenant fortement vers l'écriture de code qui prend un résultat et renvoie un résultat plutôt que de modifier une variable comme effet secondaire. P>
J'ai écrit de gros morceaux de code procédural et fonctionnel, qui me facilite la facilitation de mon code dans des morceaux plus petits qui sont plus un style ou l'autre. Quand je ne connaissais que la programmation de procédure / OOP, j'avais moins d'outils dans ma boîte à outils mental. P>
Lecture de sources de bibliothèque à Haskell nous a appris à mieux faire bouillir mon code pour séparer les abstractions de la tâche réelle. P>
J'ai beaucoup gagné d'écrire Haskell! P>
Les gestionnaires d'événements qui sont des fermetures;
C'est en fait assez impératif.
Dépend de ce que vous entendez par «fonctionnel». Dans ce cas, je faisais référence à Lambdas, à la création automatique de la fermeture et aux objets de fonction de première classe.
Utilisation principale a passé des fonctions dans des fonctions d'ordre supérieur, telles que le filtre et la carte (où et sélectionnez-la) C'est vraiment le plus grand impact, ce qui vous permet d'écrire des choses comme des opérations définies une fois, alors des choses qui agissent sur ou modifier les ensembles.
des choses comme p> au lieu de p>
Je trouve que le mouvement de Python 3.x sur les itérateurs est très naturel pour moi, car cela me rappelle l'évaluation paresseuse de Haskell. P>
Vraiment, qu'il s'agisse d'utilisation de Python 2.x ou Python 3.x, compréhensions de liste , mappe code>
, iTerTools code>
, Opérateur code>
et (un légèrement inférieur) FuncTools code>
, mes amis! p>
À certains égards, je l'ai trouvé frappant à quel point j'avais été inconsciemment en utilisant de la programmation de style fonctionnel, sans le reconnaître pour ce que c'était. p>
Par exemple, dans Java, je fais une forte utilisation de constructions dans des collections des communes telles que le transformateur et le prédicat, qui sont essentiellement des fermetures, mais implémentées comme interfaces Java. Vous utilisez ensuite les fonctions utilitaires fournies pour transformer et filtrer les éléments d'une collection. Cela va à l'encontre de la manière "standard" impérative de faire ce genre de chose en Java. P>
Celles-ci, bien sûr, sont la carte fonctionnelle de la vanille et les opérations de filtrage, mais je les utilisais instinctivement sans réaliser ce que c'était. Cela me suggère que le style fonctionnel est à une large intuitive, même si vous n'êtes pas raconté à ce sujet. P>
En effet, la programmation fonctionnelle permet un niveau d'abstraction plus élevé et on dirait que vous l'avez atteint.
Étant donné que la programmation fonctionnelle est orthogonale à OOP, elle a vraiment ouvert mes yeux sur la façon dont je structure mes cours. P>
La programmation fonctionnelle et OO ne sont pas des concepts disjoints. Une lacune dans les langues fonctionnelles que je vois est leur manque d'expressivité ADT. La chose la plus proche que j'ai vue à une programmation fonctionnelle dans une langue oo est Eiffel. Par les fonctions em> sont transparentes de manière transparente, ce serait idéal si cela était appliqué. P>
J'ai écrit un peu à ce sujet dans P>
Comment n'est-ce pas une vraie question? Ceci est une question parfaitement valide. L'OP veut savoir comment la programmation fonctionnelle change de style de codage, de la même manière que les changements de code de codage de l'OOP lorsqu'il est appliqué.
C'est une excellente question. Voter pour rouvrir.
C'est très subjectif mais je ne pense pas que cela mérite d'être fermé.
Je dirais que la programmation fonctionnelle n'influence pas simplement votre style de codage, mais change la façon dont vous pensez à la programmation.
Cette question a-t-elle vraiment une "réponse"?