XSLT doesn't allow side effects (with the exception that escaping mechanisms for executing procedural code can introduce side effects that result in functional impurity). La programmation fonctionnelle pure à l'aide de LINQ to XML est semblable en de nombreux points au langage XSLT. La programmation fonctionnelle est une forme de programmation déclarative.Functional programming is a form of declarative programming. Dans la programmation traditionnelle orientée objets (OOP), la plupart des développeurs sont habitués à programmer dans le style impératif/procédural. Pure functional programming with LINQ to XML is similar in many ways to XSLT. For example, most languages that contain function pointers can be used to credibly support functional programming. How to perform tasks (algorithms) and how to track changes in state. L'ordre d'exécution n'est pas du tout mis en évidence. La manière la plus efficace de développer une feuille de style XSLT consiste à traiter chaque modèle comme une transformation composable et isolée.The most effective way to develop an XSLT style sheet is to treat each template as an isolated, composable transformation. En outre, la forte dépendance envers la récursivité pour le contrôle de Flow peut entraîner un code difficile à lire.Also, the heavy reliance on recursion for flow control can result in code that's hard to read. Pour résoudre les problèmes, les développeurs OOP conçoivent des hiérarchies de classes, se concentrent sur l'encapsulation correcte et pensent en termes de contrats de classes. In contrast, a functional approach involves composing the problem as a set of functions to be executed. Un développement réitératif plus simple. The behavior and state of object types are paramount, and language features, such as classes, interfaces, inheritance, and polymorphism, are provided to address these concerns. La technologie LINQ est une forme de programmation déclarative fonctionnelle. Par contraste, la plupart des langages courants, y compris des langages de programmation orientés objets tels que C#, Visual Basic, C++ et Java, ont été conçus principalement pour prendre en charge la programmation impérative (procédurale). Pour passer au développement de style fonctionnel pur, ils doivent modifier leur manière de pensée et leur approche du développement.To switch to developing in a pure functional style, they have to make a transition in their thinking and their approach to development. XSLT n’autorise pas les effets secondaires (à l’exception du fait que les mécanismes d’échappement pour l’exécution de code procédural peuvent introduire des effets secondaires qui entraînent une impureté fonctionnelle). Le tableau suivant décrit quelques-unes des différences générales entre ces deux approches.The following table describes some of the general differences between these two approaches. You define carefully the input to each function, and what each function returns. Par contraste, une approche fonctionnelle suppose la composition du problème sous la forme d'un ensemble de fonctions à exécuter. Vous définissez soigneusement l'entrée de chaque fonction et ce que chaque fonction retourne.You define carefully the input to each function, and what each function returns. To solve problems, OOP developers design class hierarchies, focus on proper encapsulation, and think in terms of class contracts. Cet article compare et contraste la programmation fonctionnelle avec la programmation impérative (procédurale) plus traditionnelle. Cet article compare et contraste la programmation fonctionnelle avec la programmation impérative (procédurale) plus traditionnelle.This article compares and contrasts functional programming with more traditional imperative (procedural) programming. To switch to developing in a pure functional style, they have to make a transition in their thinking and their approach to development. The order of execution is completely de-emphasized. Introduction aux transformations fonctionnelles pures, Introduction to pure functional transformations, Afficher tous les commentaires de la page. Programmation fonctionnelle à l’aide de XSLT. De nombreux développeurs XSLT connaissent l'approche fonctionnelle pure. Fortunately, C# and Visual Basic don't require the full leap to functional programming, because they support both imperative and functional programming approaches. The following table describes some of the general differences between these two approaches. Avec une approche impérative, un développeur écrit du code qui spécifie les étapes que l’ordinateur doit effectuer pour atteindre l’objectif. Envoyer et afficher des commentaires pour, Programmation fonctionnelle et programmation impérative (LINQ to XML), Functional programming vs. imperative programming (LINQ to XML). For example, expressing programming constructs in XML makes code relatively verbose, and therefore difficult to maintain. La fonction ne repose pas sur un état externe. On the whole, functional programming just seems so much easier to deal with in the long run. Because pure functions can more easily be tested in isolation, you can write test code that calls the pure function with typical values, valid edge cases, and invalid edge cases. Bien que la plupart des langages aient été conçus pour prendre en charge un paradigme de programmation spécifique, de nombreux langages généraux sont suffisamment flexibles pour prendre en charge plusieurs paradigmes.Although most languages were designed to support a specific programming paradigm, many general languages are flexible enough to support multiple paradigms.