[PDF] Programmation fonctionnelle





Previous PDF Next PDF



Lettre dinformation travaux Grand Montout - Grand Stade n°3 (été

10 juil. 2014 Été 2014 > Fin 2015 ... Parking événeMentiel Juin 2013 > Début 2015. 2012 > 2015 : une première phase d'aménagements répondant à un triple ...



Vos obligations réglementaires

Arrêté du 24.12.2015 le programme détaillé des travaux et ses mises à jour ... Depuis le 20 avril 2016



CARTOGRAPHIE DES CHAINES DE VALEURS DE L

5. L'évènementiel sportif gisement d'opportunités pour les acteurs français . 2 « Bilan de l'année 2014 : redistribution de la croissance mondiale sur ...



BULLETIN OFFICIEL DES ARMÉES

24 janv. 2020 Circulaire du 5 décembre 2014 (n.i. BO) ... Chargé de la programmation CHORUS. ... évènementiel (Toulon). Chargé d'environnement -. EFM.



CARTOGRAPHIE DES ACTEURS DE LEVENEMENTIEL SPORTIF

9 mai 2016 II TYPOLOGIE DES GESI ORGANISES EN FRANCE ENTRE 2015 ET 2018 ... fondateurs du GIP des Jeux Equestres Mondiaux FEI Alltech 2014 étaient.



Jamais trop de Swag (FM)

1 oct. 2014 Née en 2014 à l'issue d'un stage d'initiation proposé par le centre social ... Tout a commencé par le cinéma (ateliers de programmation



2018 [RAPPORT DU DÉLÉGATAIRE OCÉANOPOLIS]

médiateurs ainsi qu'une programmation évènementielle estivale nommée Xperiensea. 2014. 2015. 2016. 2017. 2018. Perspective 2019. Fréquentation réalisée.



ANNEXE

Guide de l'élève 2014 - 2015 En quoi consiste mon U.V. de Formation Musicale (FM) ? ... Je présente à l'examen un programme de musique de chambre.



Programmation fonctionnelle

? Connaître le modèle sous-jacent et les concepts de base. chap1.fm Page 1 Mardi 4. février 2014 12:15 12. Page 10 



Bulletin officiel n°1 du 1er janvier 2015 Sommaire

1 janv. 2015 circulaire n° 2014-159 du 24-12-2014 (NOR : MENE1427925C) ... 2013-595 du 8 juillet 2013 d'orientation et de programmation pour la ...



Examen De Fin De Module - Forum Ofppt

AU TITRE DE L’ANNEE : 2013/2014 Filière : TDI Année de formation : 1A Niveau : TS Epreuve : théorique N° du module : M10 Durée : 1h30 Intitulé du module : Programmation événementielle Date d'évaluation : Barème /40 Variante : V02 On souhaite concevoir une application pour la gestion des employées



Devenir policier au sein de la police nationale française

AU TITRE DE L’ANNEE : 2013/2014 Filière : TDI Année de formation : 1A Niveau : TS Epreuve : théorique N° du module : M10 Durée : 1h30 Intitulé du module : Programmation événementielle Date d'évaluation : Barème /40 Variante : V01 On souhaite concevoir une application pour la gestion des employées



ISTE Atlanta - Éducatrices et éducateurs francophones du

VOLUME 44 NUMÉRO 1 DÉCEMBRE 2014 6 7 18 10 P 4 Mot de la présidence du Comité des communications ÉFM P 5 Mot de la présidence des ÉFM P 6 Rencontres en régions ÉFM automne 2014 P 7 Au revoir Mario! P 8 ISTE Atlanta : du 28 juin au 1er juillet 2014 P 10 Des briques de solidarité P 12 Conférence pédagogique annuelle



ÉFM – Intérêt péd agogique MCDP

4 INFORM-ACTION REVUE DES ÉDUCATRICES ET ÉDUCATEURS FRANCOPHONES DU MANITOBA MARS 2015 INFORM-ACTION Revue des Éducatrices et éducateurs francophones du Manitoba Une Agence de The Manitoba Teachers’ Society Volume 44 Numéro 2 Mars 2015 Comité des communications ÉFM 2014-2015 Tim Breen président du Comité Karen Bees Bathelemy Bolivar



LINE UP: BERLINALE - EUROPEAN FILM MARKET 2015 - The Open Reel

Mexico 2014 97’ Produced by: Gregorio Carlos Rocha Valverde FOPROCINE Estudios Churubusco-Azteca S A With the support of The John Simon Guggenheim Foundation and Programa Ibermedia Sistema Nacional de Creadores de Arte 2012-2014 FONCA/ CONACULTA GENRE: DOCUMENTARY HISTORICAL POLITICAL WORLD PREMIERE: DELHI INTERNATIONAL FILM



Research Administrators Forum

EFM will communicate the project with campus using various channels • RAF • ORA listserv • Tailored communication with Schools Divisions or departments that have funds in wave 1 Workgroup will finalize the procedures applicable to Wave 1 EFM will provide each department with a tailored list of wave 1 along with the procedure document 14



EFLM Annual report 2014 final

EFLM Strategic plan (SP) for 2014-2015 was presented SP has 33 actions related to several different chapters highlighting main strategic goals and important aspects such as the assessment of the outcome of activities of the EFLM Committees (C) and Working Groups (WG)



EFM News April 2015

2015 EFM NZ ANNUAL GENERAL MEETING 12 noon Wednesday 22 April 2015 Wellington Cathedral of St Paul Hill Street Wellington All members of the EFM Community (trainers mentors group members & graduates) are members of the EFM Trust and are warmly invited to attend The Agenda will include: Elections for EFM Trust Board members (Under



2015 “MERTON H MILLER” DOCTORAL SEMINAR PROGRAM

Apr 24 2014 · 2015 Annual Conference June 24 - 27 2015 Nyenrode Business University NETHERLANDS “For the increase and dissemination of financial management knowledge” 2015 “MERTON H MILLER” DOCTORAL SEMINAR Wednesday June 24 2015 PROGRAM Organized by Prof John A Doukas EFM Managing Editor Sponsor EUROPEAN FINANCIAL MANAGEMENT http://www efmaefm



Berlin International Film Festival

Hub - Various New Initiatives in 2015 As the first film market of the year the European Film Market (EFM) part of the 65th Berlin International Film Festival will take place from February 5 to 13 2015 and open the year for the film trade industry The EFM is one of the most significant platforms for trade in international



Searches related to efm programmation événementielle 2014 2015 filetype:pdf

which is 11 8 increase compared to fiscal year 2014 ordinary profit of 19 BN which is 3 0 decrease compared to fiscal year 2014 and net income attributable to shares held by the parent of 10 5 BN which is 10 5 increase compared to fiscal year 2014 July 2015 Hidehito Hisakawa President and Chief Exective Officer Annual Report 2015 2

Quels sont les avantages de devenir élève chez EFM ?

  • Devenir élève chez EFM Formations, c’est bénéficier d'un suivi de 3 ans et d'un référent pédagogique attitré, accéder à des cours complets en ligne (comprenant des conseils et des tutos), recevoir des livrets de synthèse de ses cours à domicile, mais aussi rejoindre une communauté d’élèves EFM motivés !

Quels sont les programmes festifs et événementiels à l’occasion des fêtes de fin d’année ?

  • Un catalogue qui, sur 68 pages, regroupe programmes festifs et événementiels à l’occasion des fêtes de fin d’année et d’hiver. Marchés de Noël, carnavals et autres fêtes populaires : pour l’hiver 2022/2023, Salaün Holidays programme plus de cinquante voyages, de tous formats et pour tous les budgets.

Comment fonctionne la programmation événementielle ?

  • ?En programmation événementielle, on prépare les actions (code) à exécuter en les associant aux événements que l'on souhaite traiter (enregistrement des callback) et on attend que le processus de surveillance nous avertisse en exécutant le code prévu.

Quels sont les avantages du modèle EFQM®?

  • Le modèle EFQM® se positionne comme un outil d’intégration des autres approches ( ISO 9001, ISO 14001, ISO 26000, OHSAS 18001, IiP…). Il permet d’avoir une perspective d’ensemble des stratégies et des résultats (qualité, environnement, sécurité, éthique et social…).

Programmation

fonctionnelle

Cours + exos corrigés

Éric Violard

Maître de conférences HDR à l'université de Strasbourg P-titre.fm Page i Jeudi, 30. janvier 2014 10:46 10Retrouver ce titre sur Numilog.com

© Dunod, Paris, 2014

ISBN 978-2-10-070385-2

Au terme de ce projet, je souhaite dédier ce livre à ma fille Julie et à son bonheur de lire et d'apprendre. Je ne saurais assez dire merci à tous les membres de ma famille, aussi je pense particulièrement à ma compagne (Myriam), à son écoute et son aide précieuse, à mes parents (Lyne et Raymond) et leur implication dans mon parcours scolaire et universitaire, et à mon frère (Christophe) au sens artistique inné. Je tiens également à remercier M. Jean-Luc Blanc des éditions DUNOD pour m'avoir fait confiance, ainsi que mon interlocutrice privilégiée Mme Carole Trochu et tous ceux et celles qui ont contribué à leur manière à la réalisation effective de ce manuel. Enfin, je veux adresser un grand remerciement à tous mes étudiants pour la curiosité et l'enthousiasme qu'ils ont manifesté lors de mes enseignements et qui sont à l'origine de ma motivation pour écrire ce manuel. P-titre.fm Page ii Jeudi, 30. janvier 2014 10:46 10Retrouver ce titre sur Numilog.com

Table des matières

Avant-propos VI

1Introduction 1

1.1Quelques termes courants en programmation 1

1.2Modèles 2

1.3Significations du mot " variable » 9

1.4Éléments purs ou impurs 10

1.5Familles de langages fonctionnels 11

Points clefs 15

2Programmer avec des fonctions 17

2.1Notions élémentaires 17

2.2Définir une fonction 20

2.3Fonctions plus complexes 25

2.4Quelques facilités dans les langages 27

Points clefs 31

Exercices 31

Solutions 33

3Récursivité 39

3.1Introduction 39

3.2Définition récursive 40

3.3Inventer une définition récursive 43

3.4Récursivité et preuve 44

3.5Problème de la terminaison 45

3.6Récursivité terminale 48

3.7Autres formes de définitions récursives 55

Points clefs 57

Exercices 58

Solutions 59

4Types 63

4.1Introduction 63

4.2La notion de type dans les langages fonctionnels 64

4.3Les langages faiblement/fortement typés 65

ViolardTDM.fm Page iii Jeudi, 30. janvier 2014 10:48 10Retrouver ce titre sur Numilog.com ivProgrammation fonctionnelle

4.4Les constructeurs de types " produit » et " flèche » 67

4.5Fonctionnelles et fonctions d'ordre supérieur 68

4.6Polymorphisme 78

4.7Calcul ou inférence de type 81

Points clefs 91

Exercices 92

Solutions 95

5Types structurés 103

5.1Introduction 103

5.2Types abstraits algébriques 104

5.3Quelques catégories de types structurés 111

5.4Types structurés polymorphes 113

5.5Filtrage par motif 115

5.6Exemple des listes 120

5.7Exemple des arbres 128

Points clefs 134

Exercices 135

Solutions 139

6Schémas de programmes 147

6.1Introduction 147

6.2Toujours le même schéma 148

6.3Capturer un schéma de programmes 150

6.4Schéma reduce 150

6.5Cacher la récursivité 152

6.6Autres schémas classiques 153

Points clefs 158

Exercices 159

Solutions 162

7Lambda-calcul 169

7.1Introduction 169

7.2Syntaxe du lambda-calcul 170

7.3Signification des lambda-expressions 172

7.4Notion de réduction 175

7.5Règles de réduction 176

7.6Réduction généralisée 182

7.7Stratégie de réduction 185

Points clefs 194

Exercices 195

Solutions 197

ViolardTDM.fm Page iv Jeudi, 30. janvier 2014 10:48 10Retrouver ce titre sur Numilog.com

Table des matièresv

Annexe A - Quelques éléments sur les langages de ce manuel 205

A.1Interpréteur et compilateur 205

A.2Commentaires 207

A.3Types de base et littéraux 208

A.4Principaux opérateurs 208

A.5Règles de typage 209

A.6Notations prédéfinies pour les listes 210

A.7Schémas de programmes prédéfinis 211

Ressources complémentaires 212

Index 213

Disponibles en ligne sur

Annexe B - Traduction d'un langage fonctionnel en lambda-calcul

B.1 Traduction des expressions de base

B.2 Traduction des expressions fonctionnelles

B.3 Traduction des définitions de fonction

B.4 Traduction de la récursivité

B.5 Traduction des types structurés

Annexe C - Réalisation des entrées/sorties

C.1 Notion de monade

C.2 Fonctions monadiques d'entrée/sortie

C.3 Exemples

ViolardTDM.fm Page v Jeudi, 30. janvier 2014 10:48 10Retrouver ce titre sur Numilog.com

Avant-propos

Laprogrammation fonctionnelleest unparadigmede programma- tion, c'est-à-dire unmode de programmationet aussi une démarche, indépendante de tout langage de programmation, permettant de construire un programme résolvant un problème donné. Ce mode de programmation est fondé sur une théorie mathématique éprouvée, celle des fonctions, dulambda-calculet dessystèmes de type.Les concepts présentés sont donc fondamentaux et peuvent resservir pour répondre à d'autres questions liées à la programmation (certification de programmes, sémantique des langages, compilation, parallélisme, etc.). La programmation fonctionnelle est de plus en plus présente et faci- litée dans les langages. Même les langages traditionnels sont étendus pour permettre le mode fonctionnel comme en témoigne l'introduction desfonctions anonymes(oulambda-expressions)dans C++ (depuis la norme C++11) et Java 8. Les langages fonctionnelspurss'imposent de plus en plus comme une alternative sérieuse aux langages traditionnels non purs. Les qualités de ce mode de programmation sont en effet indéniables. D'une part, ce mode offre un grand pouvoir expressif permettant au programmeur d'écrire des expressions concises, de se rapprocher des termes du problème, de définir et d'utiliser simplement destypes abstraitscomme leslistesou lesarbres.D'autre part, ce mode autorise la réalisation d'outils qui facilitent l'activité de programmation : inter- préteurs permettant l'exécution interactive, compilateurs qui gèrent automatiquement l'utilisation de la mémoire, contrôleurs de types qui trouvent et vérifient automatiquement le type des expressions. En comparaison dumode impératif,le prix à payer en termes de perfor- mances du code exécutable produit par le compilateur, s'il fut dans le passé un facteur limitant l'utilisation du mode fonctionnel, est aujourd'hui très faible pour la grande majorité des applications. En résumé, ce mode est transcendant, et pour paraphraser le slogan du langage fonctionnel Haskell : "Utiliser le mode fonctionnel vous fera le plus grand bien !».

CONSEILS DE LECTURE

Les concepts présentés dans ce manuel sont indépendants de tout langage et illustrés en utilisant les implémentations récentes de trois langages fonctionnels :Scheme(prononcer ['ski:m]),OCamlet Avant--propos.fm Page VI Jeudi, 30. janvier 2014 10:54 10Retrouver ce titre sur Numilog.com

Avant-propos VII

Haskell.Il n'est pas nécessaire d'apprendre complètement la syntaxe d'un ou de plusieurs de ces langages ! Un programmeur expérimenté ne fait jamais cela : il a acquis suffisamment de connaissances et de recul au sujet d'un mode de programmation pour pouvoir utiliser n'importe quel langage qui supporte ce mode, et trouver dans un manuel de réfé- rence (destiné à un programmeur expérimenté), la syntaxe correspon- dant au concept qu'il souhaite utiliser. À ce propos, ce livre n'est en aucun cas un manuel de référence, et pour connaître les subtilités ou raccourcis syntaxiques, le lecteur devra consulter le manuel de référence du langage au fur et à mesure des donnée incidemment à titre indicatif et dans un ordre et un découpage différent de celui d'un manuel de référence, car les objectifs sont bien différents (par exemple, certaines constructions syntaxiques ont été pas directement par de la syntaxe). Au-delà de la syntaxe différente, chacun de ces langages possède des caractéristiques propres (notamment en termes d'exécution) et apporte un éclairage différent : -Schemeest " très souple » pour le programmeur au sens où il n'interdit pas certains raccourcis qui peuvent cependant être dangereux pour la correction des programmes ; -OCamlest un produit universitaire plus éducatif, mais beaucoup plus rigide ; -Haskellest totalementpuravec un pouvoir d'expression accru. Il est conseillé au lecteur de commencer par l'un des langages OCaml ou Haskell, pour tester et expérimenter les concepts, puis de revenir ensuite sur les raccourcis et la souplesse de Scheme, une fois le mode fonctionnel mieux assimilé.

RESSOURCES NUMÉRIQUES

Ce manuel est accompagné de compléments en ligne qui permettront au lecteur d'aller plus loin. Ces compléments sont accessibles depuis le site de Dunod sur la page web dédiée à ce livre ou surhttp:// www.dunod.com/contenus-complementaires/9782100703852. Ces res- sources numériques contiennent : -deux annexes (B et C): l'annexe B montre comment un programme écrit dans un langage fonctionnel peut se traduire en une expression dulambda-calcul.L'annexe C montre comment les opérations Avant--propos.fm Page VII Jeudi, 30. janvier 2014 10:54 10Retrouver ce titre sur Numilog.com

VIIIProgrammation fonctionnelle

d'entrée/sortie (saisie au clavier et affichage à l'écran) peuvent être définies proprement dans un langage fonctionnel pur. -des programmesécrits enOCaml, HaskelletScheme :ces pro- grammes sont des solutions aux exercices énoncés à la fin de chaque chapitre. Dans ce manuel, la solution de chacun des exercices est écrite en utilisant un seul des trois langages. Ce complément révèle l'écriture de la solution dans les deux autres langages. -une application web(http://tolambda.sourceforge.net/fr) : cette petite application permet à l'utilisateur d'expérimenter lelambda- calculet en particulier de vérifier les solutions aux exercices du der- nier chapitre. À l'aide de cette application, l'utilisateur peut réduire automatiquement une lambda-expression en utilisant la stratégie de son choix (AOR, NORou leurs variantes) et aussi effectuer la tra- duction présentée dans l'annexe B. Elle a été conçue et réalisée par l'auteur de ce manuel dans le seul but de renforcer la compréhension du lambda-calcul (le programme source a été écrit en OCaml). Elle est libre de droits (licence MIT) : la seule condition de réutilisation est de citer l'auteur.

USAGES TYPOGRAPHIQUES

Un mot est mis en gras s'il est important et que sa définition est présente dans la page où il apparaît. Dans le contexte d'expressions écrites en utilisant un formalisme (par exemple un langage de program- mation, le lambda-calcul ou le langage des mathématiques), lacouleur rougeest parfois utilisée pour mettre en évidence une partie d'une expression (par exemple, une certaine occurrence de la variableadans cette expression((x.a.a) a)du lambda-calcul). Elle est utilisée systé- matiquement lorsqu'il s'agit d'expressions qui sont affichées à l'écran par un interpréteur ou un code exécutable (par exemple l'invite Prelude>de l'interpréteur Haskell). Une expression de type est colo- rée en rouge pour signaler qu'elle est écrite en utilisant la syntaxe d'un certain langage de programmation (OCaml ou Haskell) : si une expres- sion de type est en noir, cela signifie qu'elle n'est pas écrite dans un langage en particulier et qu'elle représente toutes les expressions qu'il est possible d'écrire dans les différents langages de programmation pour exprimer le même type (par exemple,List Floatexprime un type qui s'écritfloat listen OCaml etList Floaten Haskell). Ces conventions seront rappelées juste avant leur utilisation. Avant--propos.fm Page VIII Jeudi, 30. janvier 2014 10:54 10Retrouver ce titre sur Numilog.com 1

Introduction

1.1 QUELQUES TERMES COURANTS EN PROGRAMMATION

L'activité de programmation consiste à écrire unprogrammerésolvant unproblèmedonné. Généralement, la solution d'un problème est un ensemble derésultatsqui dépendent d'un ensemble dedonnées.Un programme est un texte qui décrit de manière formelle unalgorithme, c'est-à-dire une suite d'étapes ou d'opérations permettant d'obtenir la solution du problème. Ces opérations sont réalisables (on dit plutôt exécutables) par leprocesseurd'un ordinateur. Ce texte peut être saisi, modifié et enregistré dans unfichierà l'aide d'unéditeurde texte. Un nie par le langage. Il n'est pas directement exécutable par l'ordinateur, car celui-ci ne sait interpréter qu'uncode binaire,c'est-à-dire une suite de0ou1. Des outils logiciels (compilateurouinterpréteur)associés au langage permettent d'exécuter un programme : soit en réalisant sa traduction complète en un code exécutable par l'ordinateur (compila- teur), soit, lorsque le langage le permet, en interprétant le texte au fur et

à mesure de sa lecture (interpréteur).

PLAN

1.1 Quelques termes courants en programmation

1.2 Modèles

1.3 Significations du mot " variable »

1.4 Éléments purs ou impurs

1.5 Familles de langages fonctionnels

OBJECTIFS

Savoir situer le mode fonctionnel par rapport aux autres modes de programmation. Découvrir sur quoi repose la programmation fonctionnelle. Connaître le modèle sous-jacent et les concepts de base. chap1.fm Page 1 Mardi, 4. février 2014 12:15 12Retrouver ce titre sur Numilog.com

2Chapitre 1 Introduction

Tous les termes informatiques utilisés dans ce manuel sont mis en italique. Pour la plupart, leur sens figure dans le contexte où ils appa- sont intéressantes à connaître dans le cadre d'études en informatique tionnel de ce qui appartient aux autres modes).

1.2 MODÈLES

La programmation fonctionnelle est unmode de programmation, c'est-à-dire une façon de construire un programme résolvant un problème donné. Les principaux modes de programmation sont : lemode logique, lemode fonctionnel, lemode impératif, et lemode orienté objet. une problématique différente (et complémentaire). Ce mode a en effet l'objectif premier de faciliter le développement et la maintenance de grandslogicielscomplexes en permettant de gérer séparément des parties conceptuellement disjointes. Les autres modes ont eux l'objectif premier de définir et organiser les calculs à réaliser par l'ordinateur ou la plateforme d'exécution. Lorsqu'on veut apprendre et utiliser un mode de programmation, il est important de bien séparer le mode de programmation, du langage de programmation qui n'est qu'une syntaxe pour faciliter l'utilisation d'un ou plusieurs modes de programmation. (Ce manuel a l'ambition d'apprendre au lecteur à utiliser le mode fonctionnel avec tout langage le permettant).

Une problématique différente

mation " in the large » ou " in the small » pour opposer la réalisation et la maintenance d'un programme par une équipe dont chaque membre ne connaît qu'une partie, et l'écriture d'un programme par un seul programmeur qui connaît la totalité du programme. chap1.fm Page 2 Mardi, 4. février 2014 12:15 12Retrouver ce titre sur Numilog.com

1.2 Modèles3

Un langage de programmation est donc qualifié respectivement de " logique », " fonctionnel », " impératif » ou " orienté objet », dès lors qu'il encourage le programmeur à utiliser respectivement le mode doit gérer " à la main » de nombreuses contraintes d'accès aux données objet. La plupart des langages de programmation récents sont multi-paradigmes, c'est-à-dire qu'ils permettent d'utiliser plusieurs modes de programmation (et un grand nombre sont orientés objet puisque ce mode est complémentaire des autres). Par exemple, le langage OCaml est à la fois fonctionnel, impératif et orienté objet. Nous nous intéressons ici particulièrement aux modes que nous quali- de ces modes peut être défini ou caractérisé par un ensemble de notions Un modèle est une façon de formaliser la relation entre les données et les résultats d'un problème en utilisant le langage des mathématiques. modus operandiou procédé de calcul permettant d'obtenir étape par étape les résultats à partir des données. Un tel énoncé peut être directe- ment codé dans un langage de programmation qui supporte le mode de programmation. Dans la suite, nous montrons pour chacun des modes de programmation quel est son modèle sous-jacent. Les notions sont illustrées par le problème du calcul du maximum de deux nombres. Nous en donnons un énoncé et une solution sous la forme d'un programme écrit dans un langage qui supporte le mode de programmation.

Mode logique

Le mode logique est naturel puisqu'il s'agit de définir la relation entre les données et les résultats et qu'en logique mathématique, unprédicat définit une telle relation. Son modèle est celui des formules logiques est la propriété qui relie les données aux résultats. chap1.fm Page 3 Mardi, 4. février 2014 12:15 12Retrouver ce titre sur Numilog.com

4Chapitre 1 Introduction

ExempleUn énoncé pour le maximum de deux nombres est par exemple : (A≥B?M=A?max(A,B,M))? (B≥A?M=B?max(A,B,M)) oùmax(A, B, M) est un prédicat à trois places signifiant queMest le plus grand parmiAetB. Une formule logique est ainsi construite en utilisant desconnecteurs logiques :l'implication, le " et » peut aussi s'écrireQ?¬P). Lorsque l'énoncé est une conjonction declauses de Horn,c'est-à-dire de formules de la formeP 1 ?P 2 ?···?P n

Q, comme c'est le cas de

le résultat à partir des données, et peut s'écrire en utilisant un langage logique comme Prolog. ExempleLe texte qui suit est un programme écrit en Prolog, et correspond à l'énoncé précédent: max(A,B,M) :- A >= B,M=A. max(A,B,M) :- B >= A,M=B. Ce programme comporte deux clauses de Horn terminées par un point. La virgule note le " et » logique et:-note l'implication (la notationQ:-PsignifieP?Q, autrement dit "Qest vrai siPest vrai »). L'exécution d'un programme consiste à faire la démonstration qu'un prédicat est vrai. Un prédicat dont la vérité est à démontrer est appelé but,et le procédé de calcul (appeléchaînage arrière)consiste à tenter de démontrer tous les prédicats permettant de déduire le but. ExempleUn but est par exemplemax(2,7,M)oùMest unevariable. Ce prédicat signifie queMest le plus grand parmi2et7, il n'est vrai que pour certaines valeurs deM. L'exécution correspondant à ce but de Horn dont laconclusion(le prédicat à gauche de":-") correspond (on dit plutôt dans ce contexte s'unifie) avec le but à démontrer. Ici, la première clause convient, car la partie gauche estmax(A,B,M)quiquotesdbs_dbs19.pdfusesText_25
[PDF] efm statistique tsge corrigé

[PDF] effrance.org inscription 2017

[PDF] efs

[PDF] efu groupe csmv

[PDF] égalité de droit définition

[PDF] égalité de fait définition

[PDF] égalité de vecteurs seconde

[PDF] égalité des conditions def

[PDF] égalité des variances définition

[PDF] égalité différences discriminations en cap

[PDF] égalité vectorielle exercices corrigés

[PDF] egcp ii r

[PDF] egcp ii r

[PDF] egid genève

[PDF] église du sacré c&339;ur de casablanca