Programmation Fonctionnelle  Tome 2

Programmation Fonctionnelle Tome 2


Ouvrage abordable pour un public généraliste, ayant la curiosité de découvrir la programmation fonctionnelle sous ses différents aspects. Débutant par des définitions simples, avec de nombreux exemples programmés, le lecteur pourra évoluer à son rythme dans la complexité. Cet ouvrage est tout indiqué pour les étudiants du premier cycle universitaire, il est le condensé de plusieurs années de cours dispensés dans différents établissement supérieurs. De plus, les recherches et les expériences acquises durant ces dernières années, ont permis aux auteurs d'évaluer comparativement différents langages, en laissant en toute objectivité le lecteur juge de la préférence d'un langage ou d'un autre.

56 €
En stock

 

Commande avant 16h,
expédié le jour même (lu. - ve.)

 

Livraison express sous 48h.

ISBN : 2854286081
Référence : 608
Année de parution : 2003
Suite à notre premier ouvrage intitulé "Programmation fonctionnelle Appliquée à l'Analyse Numérique Matricielle", nous nous sommes interrogés sur le fait que ce dernier était destiné plutôt à un public averti, ayant déjà une connaissance approfondi du fonctionnel et maîtrisant l'analyse numérique. Notre volonté fut alors d'éditer un ouvrage abordable à un public généraliste, ayant la curiosité de découvrir la programmation fonctionnelle sous ces différents aspects. Débutant par des définitions simples, avec de nombreux exemples programmés, le lecteur pourra évoluer à son rythme dans la complexité.

Cet ouvrage est tout indiqué pour les étudiants du premier cycle universitaire, il est le condensé de plusieurs années de cours dispensés dans différents établissement supérieurs. De plus, les recherches et les expériences acquises durant ces dernières années, nous à permis d'évaluer comparativement différents langages, en laissant en toute objectivité le lecteur juge de la préférence d'un langage ou d'un autre.

Les spécifications formelles et la programmation fonctionnelle qui en découlent, sont enseignées en premier, second, voire en troisième cycle du Conservatoire National des Arts et Métiers, cet ouvrage ne peut qu'encourager le lecteur ou l'auditeur à persévérer dans cette voie en appréciant la puissance de cette programmation dans l'application de projets informatiques complexes. Ce livre à été conçu dans le but d'être principalement un support de cours. Il peut être une référence aux enseignants et une aide aux étudiants désireux d'approfondir leurs connaissances dans le domaine fonctionnel.

Référence : 608
Niveau : premier cycle universitaire
Nombre de pages : 596
Format : 14,5x20,5
Reliure : Broché

TABLE DES MATIERES

   

 

Avant-propos

 

Remerciements

 

Introduction

 

 

CHAPITRE 1 - Les outils pour formaliser

 

1.       Ensembles et Eléments de logique

 

1.1.     Ensemble

1.1.1    Présentation intuitive

1.1.2    Définition

1.1.3    Création d'un ensemble ISETL

1.1.4    Opérations

1.1.4.1   Union

1.1.4.2   Intersection

1.1.4.3   Différence, Complémentaire

1.1.5    Théorèmes

1.1.6    Inclusion

1.1.7    Parties d'ensemble

1.1.8    Produit cartésien

1.1.8.1   Projecteurs

1.1.9    Les Opérateurs en langage ISETL

1.1.10Quelques exemples ISETL

 

1.2.     Logique des propositions

1.2.1    Introduction

1.2.1.1   Implication, Equivalence en ISET

1.2.2    Tables de vérité

1.2.2.1   Ecriture des tables de vérité en ISETL

1.2.3    Propriétés des connecteurs

1.2.4    Une axiomatique

1.2.4.1   Axiomes

1.2.5    Tautologies

1.2.6    Exercices

1.2.6.1   Exercice n°1

 

1.2.6.2   Exercice n°2

1.2.6.3   Exercice n°3

 

1.3.     Logique des prédicats

                1.3.1       Définition

                1.3.2       Quantificateurs

                1.3.3       Règles

                1.3.4       Exemples

                1.3.5       Exercices corrigés

 

 

CHAPITRE 2 - Complément sur les ensembles

 

1.       Correspondances - Fonctions - Relations

 

1.1.     Correspondances

1.1.1    Représentation d'une correspondance

1.1.1.1   Successeur et prédécesseur

1.1.2    Domaine, Image d'une correspondance

1.1.3    Les correspondances en ISETL: Les maps

1.1.3.1   Création

1.1.3.2   Les opérations

1.1.3.3   Exemple

1.1.4    Transposée d'une correspondance 

1.1.5    Image d'un élément d'un sous-ensemble

1.1.6    Relation, Fonction, Application 

1.1.6.1   Relation

1.1.6.2   Composition

1.1.6.3   Fonction, Application

1.1.6.4   Théorème

1.1.6.5   Exemples

1.1.7    Exercices corrigés

 

1.2.     Relations binaires

1.2.1    Définition d'une relation binaire

1.2.1.1   Ensemble produit

1.2.1.2   Relation

1.2.2    Représentation d'une relation binaire

1.2.3    Composition de deux relations binaire

1.2.4    Propriétés des relations

1.2.4.1   Relation identité

1.2.4.2   Relation transposée

1.2.4.3   Relation d'ordre

1.2.4.3.1               Définition

1.2.4.3.2               Relation d'ordre totale

1.2.4.3.3               Relation d'équivalence

1.2.5    Relations binaires en ISETL

1.2.5.1   Réflexive

 

1.2.5.2   Antiréflexive

1.2.5.3   Non réflexive

1.2.5.4   Symétrique 

1.2.5.5   Antisymétrique au sens large

1.2.5.6   Antisymétrique au sens stricte

1.2.5.7   Transitive

1.2.5.8   Un exemple en ISETL

1.2.6    Ensemble stable intérieurement maximal (ESIMS)

1.2.6.1   Définition

1.2.6.2   Algorithme de recherche des ESIMS

1.2.6.3   Application - Nombre chromatique d'un graphe

 

 

CHAPITRE 3 - Les Types Abstraits

 

1.       Quelques types abstraits et les suites

 

1.1.     Le type abstrait booléen

 

1.2.     Le type abstrait entier

 

1.3.     Le type abstrait ensemble

 

1.4.     Les Listes 

        1.4.1    Création

1.4.2    Les opérations

1.4.3    Suites et couples

1.4.4    Exemples

 

1.5.     Le type abstrait suite 

1.5.1    Une première définition : l'ensemble S(A)

1.5.1.1   Structure

1.5.1.2   Opérations de base

1.5.2    Une deuxième définition : l'ensemble K(A)

1.5.2.1   Structure

1.5.2.2   Opérations de base

1.5.3    Equivalence des deux versions

1.5.4    Fonctions ajoutées aux primitives

1.5.4.1   Longueur d'une suite

1.5.4.2   Extraction d'un élément

1.5.4.3   Concaténation de deux suites

1.5.4.4   Identité de deux suites

1.5.4.5   La fonction map

1.5.4.6   La fonction filter

1.5.4.7   La fonction member

1.5.4.8   La fonction foldl (pliage gauche)

1.5.4.9   La fonction foldr (pliage droit)

 

 

1.6.     Les suites en ISETL

1.6.1    La structure

1.6.2    De l'algorithme à la programmation

1.6.3    Les opérations

1.6.4    Machine à états pour les suites

1.6.4.1   La fonction factorielle

1.6.4.1.1               Mae pour la fonction factorielle

1.6.4.1.2               Algorithme

1.6.4.2   Mae pour la fonction length

                1.6.4.2.1             Définition de la mae

1.6.4.2.2               Mae réduite

1.6.5    Deux exercices détaillé

1.6.5.1   Plus grand élément d'une suite d'entiers

1.6.5.2   Première occurrence d'un élément dans une suite 

1.6.6    Equations remarquables

1.6.7    Un pliage particulier: map

 

1.7.     La currification

1.7.1    Définition

1.7.2    Exemple

1.7.3    Réalisation du type abstrait suite en ISETL

1.7.4    Exemples d'utilisation du module suite avec fonctions currifiées

 

 

CHAPITRE 4 - Programmer en langage Clean

 

1.       Programmer avec des fonctions

 

1.1.         L'expression Start en Clean

1.1.1           Un premier exemple

1.1.2           Un second exemple

1.1.3           Un troisième exemple

 

1.2.     Les types de bases en Clean

1.2.1           Le type fonction (ou flèche)

 

1.3.     Définir des fonctions simples

        1.3.1       La fonction carré

                1.3.2       La fonction double

              1.3.3       La fonction est_pair

 

1.4.     La currification

                1.4.1       Définition

                1.4.2       Exemple

 

1.5.     Quelques fonctions standards sur les types simples

1.5.1    Pour le type Int

 

 

1.5.2    Pour le type Real

1.5.3    Pour le type Bool

1.5.4    Pour le type Char

 

1.6.     Définir des fonctions

1.6.1    Par combinaison de fonctions existantes

1.6.2    Par cas

1.6.3    Par induction ou récursion

 

1.7.     Types abstraits

1.7.1    Les opérations de base disponibles en Clean pour les suites

 

1.8.     Codage des fonctions ajoutées aux primitives du type abstrait suite

1.8.1    Longueur d'une suite

1.8.2    Extraction d'un élément

1.8.3    Identité de deux suites

1.8.4    Concaténation de deux suites

1.8.5    La fonction map

1.8.6<

Livres de l'auteur A. Couturier

Livres de l'auteur Gérald Jean-Baptiste