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.
Commande avant 16h,
expédié le jour même (lu. - ve.)
Livraison express sous 48h.
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é |
Rôle | |
---|---|
Couturier A. | Auteur |
Jean-Baptiste Gérald | Auteur |
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