Club utilise des cookies et des technologies similaires pour faire fonctionner correctement le site web et vous fournir une meilleure expérience de navigation.
Ci-dessous vous pouvez choisir quels cookies vous souhaitez modifier :
Club utilise des cookies et des technologies similaires pour faire fonctionner correctement le site web et vous fournir une meilleure expérience de navigation.
Nous utilisons des cookies dans le but suivant :
Assurer le bon fonctionnement du site web, améliorer la sécurité et prévenir la fraude
Avoir un aperçu de l'utilisation du site web, afin d'améliorer son contenu et ses fonctionnalités
Pouvoir vous montrer les publicités les plus pertinentes sur des plateformes externes
Gestion des cookies
Club utilise des cookies et des technologies similaires pour faire fonctionner correctement le site web et vous fournir une meilleure expérience de navigation.
Ci-dessous vous pouvez choisir quels cookies vous souhaitez modifier :
Cookies techniques et fonctionnels
Ces cookies sont indispensables au bon fonctionnement du site internet et vous permettent par exemple de vous connecter. Vous ne pouvez pas désactiver ces cookies.
Cookies analytiques
Ces cookies collectent des informations anonymes sur l'utilisation de notre site web. De cette façon, nous pouvons mieux adapter le site web aux besoins des utilisateurs.
Cookies marketing
Ces cookies partagent votre comportement sur notre site web avec des parties externes, afin que vous puissiez voir des publicités plus pertinentes de Club sur des plateformes externes.
Une erreur est survenue, veuillez réessayer plus tard.
Il y a trop d’articles dans votre panier
Vous pouvez encoder maximum 250 articles dans votre panier en une fois. Supprimez certains articles de votre panier ou divisez votre commande en plusieurs commandes.
This new edition contains new chapters for undergraduates, where the progression is purposefully slow and every step explained. The chapter on merge sort has been rewritten for better clarity and new results were included. A large chapter on XSLT has been added. This book addresses a priori different audiences whose common interest is functional programming. For undergraduate students, we offer a very progressive introduction to functional programming, with long developments about algorithms on stacks and some kinds of binary trees. We also study memory allocation through aliasing (dynamic data-sharing), the role of the control stack and the heap, automatic garbage collection (GC), the optimisation of tail calls and the total allocated memory. Program transformation into tail form, higher-order functions and continuation-passing style are advanced subjects presented in the context of the programming language Erlang. We give a technique for translating short functional programs to Java. For postgraduate students, each functional program is associated with the mathematical analysis of its minimum and maximum cost (efficiency), but also its average and amortised cost. The peculiarity of our approach is that we use elementary concepts (elementary calculus, induction, discrete mathematics) and we systematically seek explicit bounds in order to draw asymptotic equivalences. Furthermore, we cover in detail proofs of properties like correctness, termination and equivalence. For the professionals who do not know functional languages and who must learn how to program with the language XSLT, we propose an introduction which dovetails the part dedicated to undergraduate students. The reason of this unusual didactic choice lies on the observation that XSLT is rarely taught in college, therefore programmers who have not been exposed to functional programming face the two challenges of learning a new paradigm and use XML for programming: whereas the former puts forth recursion, the latter obscures it because of the inherent verbosity of XML. By learning first an abstract functional language, and then XML, we hope for a transfer of skills towards the design and implementation in XSLT without mediation. This book differs from traditional textbooks in that it does not cover many algorithms and data structures, nor many programming language features, nor does it present the most advanced analytic methods. Instead, its originality lies in constantly tying functional programming, cost analysis, proofs and implementation. As such, it is an eclectic companion for other readings, suitable for different courses, like functional programming, formal logic and analysis of algorithms.