Let rec f n = if n = 0 then true else g (n-1) g n = if n = 0 then false else f (n-1) val f : int -> bool = val g : int -> bool =

Slides:



Advertisements
Présentations similaires
La boucle for : init7.c et init71.c
Advertisements

Les fonctions A quoi ça sert ?
Cours n° 7 Standard Template Library II.
Initiation à PowerPoint
L’ interruption de boucle
18/10/2004 P. Van Roy, InfoT4, S5 1 Informatique T4 Solutions au Test du 18 octobre Peter Van Roy Département dIngénierie Informatique, UCL
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
OCaml - Les listes L3 MI.
OCaml – Les arbres L3 MI.
Module 4 : Parcours dans un graphe
Base de programmation Script unity en c#.
Traiter des Données avec la STL
Récursivité Définition récursive d’un problème. Critère d’arrêt et convergence. Performance des algorithmes récursifs. Résolution d’un problème à l’aide.
1 PROTOTYPE PGC++ Vecteur_3D DÉFINITION. 2 class Vecteur_3D { private : float vx, vy, vz, vw; // Représentation en coordonnées homogènes. public : Vecteur_3D();
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Arbres binaires complets
Chapitre 8 Structure de contrôle.
Partie II Sémantique.
Sémantique dénotationnelle
CSI 1502 Principes fondamentaux de conception de logiciels
CSI3525: Concepts des Langages de Programmation Notes # 6: Langages de Programmation Fonctionelle II: Introduction au ML.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Procédures Stockées Schedule: Timing Topic 60 minutes Lecture
C++ : variables Déclaration de variables
P. Van Roy, LINF LINF1251: Sémantique Formelle Peter Van Roy Département d’Ingénierie Informatique, UCL
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
FONCTIONS avec paramètres en Entrée/Sortie
Structures alternative et répétitive
L’essentiel du langage C
Javascript 1° PARTIE : LES BASES
Boucles et Tests For( in ) { } While( ) { } Les exécutions conditionnelles (if.. else) peuvent être évitées avec des indexations logiques. Exemples: y=numeric(length(x));
Algorithmes de tri et de recherche
Créer des packages.
Méthodes de tri.
MIGO ET COMPLEXITE1 ARBRES EQUILIBRES Définition : On dit qu’un arbre binaire est H équilibré si en tout nœud de l’arbre, les hauteurs des sous-arbres.
Les tests.
Cours n° 3 Traitements en Java
Variables et environnement utilisateur W. Barhoumi.
Évaluation et application des fonctions Let f = function x -> ( function y -> x+y );; Type :int -> (int ->int) int -> int ->int f int.
CSI2520 Un langage de programmation par scripting orienté-objet (et fonctionnel)
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Liste Une liste est une séquence d’éléments. Concept important: Chaque élément possède une position dans la liste. Notation: De quelles opérations a-t-on.
Les verbes réfléchis au passé composé
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Écrire des fonctions, max et min, qui calculent le maximum, et le minimum de deux éléments x et y. Exercice 1. max (min) : fonction qui prend deux valeurs,
1er enfant Couples Filles Garçons couples ont un premier enfant. On aura environ filles et garçons.
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département d’informatique et de génie logiciel Édition Septembre 2009.
Classe de sixième Objectives To learn about classroom objects Listen to the sounds Look at the words Say the words out loud - pronunciation Write the.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Directives Ocaml Définition
Pronom Personnel. Definition  Un pronom remplace un élément de la phrase.  A pronoun replaces an element in the sentence.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
IFT359 – Programmation fonctionnelle Thème 07 Fermeture, affectation ou monades 1.
CINI – Li115 1 Semaine 4 Révisions ● Questions de cours ● Types des expressions ● Déclaration de variables ● Instruction conditionnelle et boucles ● Structure.
Semaine 8 Retour sur les tableaux : fonctions et récursivité
>>> Amphi Python
3°) Décomposition d’un nombre entier en produit d’entiers :
Algorithme d’Euclide pour le PGCD.
Coding party Écrire un programme qui élève un nombre au carré Écrire un programme qui teste si un nombre est pair Écrire un programme qui calcule la factorielle.
Coding party Écrire un programme qui élève un nombre au carré Écrire un programme qui teste si un nombre est pair Écrire un programme qui calcule la factorielle.
Int 10. Int 6.
H. Wertz -- Exécution Symbolique
Exercice Une usine produit en 1 mois des pièces. Elle les range dans des cartons ( contenance 36 pièces ), et 210 cartons remplissent 1 container. Chaque.
Transcription de la présentation:

let rec f n = if n = 0 then true else g (n-1) g n = if n = 0 then false else f (n-1) val f : int -> bool = val g : int -> bool =

true false n =0 f (n) n =0 g (n) n -1 n n oui non

let d = function f -> (f 0) ;; d int f ‘a Type : (int -> ‘a) -> ‘a

d (function x -> x+1) = let d = function f -> ( f 0 ) ;; d ( function x -> "argument" ^ (if x=0 then "" else "non") ^ "nul ") = 0+1 = 1(function x -> x+1) 0 = (function x -> "argument" ^ (if x=0 then "" else "non") ^ "nul") 0 = "argument " ^ (if 0 =0 then "" else "non ") ^ "nul" = "argument " ^ "" ^ "nul" = "argument nul " f

fun f x y -> (f x) y ;; g = function f -> function x -> function y -> (f x) y ;; g x : ‘a f y : ‘b f x ‘c x : ‘a * ‘c y : ‘b - : ('a -> 'b -> 'c) -> 'a -> 'b -> 'c = <fun>

fun f x y -> (f x) / (f y) ;; Paramètres de la fonction 123 function f -> function x -> function y -> (f x) / (f y) ;;

fun f x y -> (f x) / (f y) ;; x : ‘a f (f x) : ‘int * * x : ‘a y : ‘aint ('a -> int) -> 'a -> 'a -> int = <fun>

fun f x y -> f x, y ;; Premier paramètre Deuxième paramètre Troisième paramètre Corps de la fonction f x, y Couple dont la première composante est f (x) et la deuxième composante est y

x : ‘a (f x) : ‘b f x : ‘a ‘b*’c y : ‘c fun f x y -> f x, y ;; - : ('a -> 'b) -> 'a -> 'c -> 'b * 'c =

fun f x y -> f (x, y) ;; ‘a*’b ‘c ‘a ‘b ‘c Type : - : (‘a*’b) -> ‘a ->’b -> ‘c

fun f x y -> f ( x y f) ;; function f -> function x -> function y -> f ( x y f) ;;

fun f x y -> f ( x y f) ;; ‘a f ‘b y:‘c x (X y) ‘a ‘c‘b (a -> b) -> (c -> (a -> b) ->a) -> c -> b (a->b)->((c->((a->b)->a))->(c->b)) ‘a f ‘b

fun f x y -> (f x) (y f) ;; ‘a f ‘b ‘c y f (x) ‘a ‘c - : ('a -> 'b -> 'c) -> 'a -> (('a -> 'b -> 'c) -> 'b) -> 'c = <fun> x ----> ‘a ‘b y (f ) ----> ‘b (f x) (y f) ----> ‘c f

Let fact = funtion 0 -> n | n -> n * fact (n-1);; Let negation = function true -> false | false -> true ;; Définition de fonction par filtrage

let entier_it f a = let rec g = function 0 -> a | n -> f (g (n-1)) in g ;; val entier_it : ('a -> 'a) -> 'a -> int -> 'a = <fun> 'a int 'a