Directives Ocaml Définition

Slides:



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

Les fonctions A quoi ça sert ?
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Rappels C.
Formation universitaire à .NET: Introduction à C#
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
6. Les sous-programmes P. Costamagna – ISEN N1.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
CSI3525: Concepts des Langages de Programmation Notes # 5: Langages de Programmation Fonctionelle I: Introduction au Scheme.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Semaine #1 INF155 par Frédérick Henri.
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.
Analyse lexicale Généralités Expressions rationnelles Automates finis
Points importants de la semaine Le paramétrage. La portée. Le passage par copie. Le passage par référence.
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
Points importants de la semaine Les sous-programmes. Les paramètres.
Points importants de la semaine Les constantes de compilation. Les fonctions.
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie II 2014.
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.
Chapitre 3 Syntaxe et sémantique.
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI3525: Concepts des Langages de Programmation Notes # 6: Langages de Programmation Fonctionelle II: Introduction au ML.
C++ : variables Déclaration de variables
Procédures et fonctions
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
Faculté Polytechnique de Mons
Chapitre X Modèles.
B.Shishedjiev -Débogueur1 Déboguer? Comment trouver et corriger les erreurs?
Les adresses des fonctions
SIF-1053 Architecture des ordinateurs
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
Créer des packages.
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Le langage Racket (Lisp)
Introduction au langage C Fonctions et Procédures
Les types composés Les enregistrements.
ISBN Chapitre 10 L'implémentation des sous- programmes.
C# de plus près.  Ce sont globalement les mêmes que Java : ◦ Int(int16, int32), float, double, bool,…  Les classe « communes » sont également les mêmes.
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.
Cours LCS N°4 Présenté par Mr: LALLALI
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.
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
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 =
Les bases de l’algorithmique
É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,
1 Cours 6 Définitions de nouvelles procédures Transmissions de données/résultats Déclarations globales/locales Visibilités Interface/implementation.
Scripts et fonctions Instructions de contrôle
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
Introduction à l’Informatique Licence SPI Mme Delmotte.
PhP 2. Tableaux et structures de contrôle. Les tableaux Définition –Rassemblement d’un ensemble de valeurs portant le même nom de variable –Types de tableaux.
FACTORY systemes Module 5 Section 1 Page 5-3 Les scripts de traitement FORMATION INTOUCH 7.0.
Informatique 2A Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.
IFT359 – Programmation fonctionnelle Thème #10 Évaluation par environnement et évaluateur méta-circulaire 1.
Pas de variable globale
Les notions de classe et d'objet
Transcription de la présentation:

Directives Ocaml Définition Commandes, introduites par le symbole #, permettant de modifier le comportement de la boucle d’interaction Ocaml. Exemples #quit Quitter la boucle d’interaction Compile et charger un fichier source (généralement d’extension .ml) #use #directory Ajoute un chemin de recherche #cd Change le répertoire courant

Déclaration de variables en Ocaml Variable Ocaml Une liaison entre un nom et un valeur. Types de déclaration Déclaration globale Let <nom > = <expression > Déclaration locale Let <nom > = <expression 1> in <expression 2 >

Exemple d’évaluation La valeur de y est celle retournée par expression Let y = let x = 1 in if x = 0 then 4 else 5 ;; Let <nom > = <expression > Introduire une valeur Nom de la variable Expression renvoyant une valeur La valeur de y est celle retournée par expression

Exemple d’évaluation let x = 1 in if x = 0 then 4 else 5;; Let <nom > = <expression 1> in <expression 2 > let x = 1 in if x = 0 then 4 else 5;; Nom de la variable locale Portée de la variable locale La valeur retournée est celle de expression2

P1 S Pn Vue générale des fonctions ? Paramètres d’entrées Valeur en sortie

Définition fonction f : R --------------------> R f (x) = x + 1 Définition mathématique Préciser l’ensemble de départ et l’ensemble d’arrivé Définir le corps de la fonction f : R --------------------> R x ----------------------> y = x + 1 f (x) = x + 1 Type : int ---------> int

Définition fonction En Ocaml Syntaxe 1 let double = function x --> 2*x ;; Syntaxe 2 let double x = 2*x ;; Syntaxe 3 let double (x) = 2*x ;;

Représentation graphique f : E1 : t1 --------------------> E2 : t2 x ----------------------> y = f (x) = x+1 f f (x) = x+1 E1 E2 int int

Exemple ‘a Fonction polymorphe f : ‘a ----> int f int # let f = function x -> 1 ;; Fonction polymorphe f : ‘a ----> int f ‘a int

Autres exemples # let f = function x -> 1 ;; int f : ‘a ----> int f # let f = function x -> x ;; f : ‘a ---> ‘a ‘a ‘a f # let f = function x -> x+1;; f : int ---> int int int

Fonction qui rend une fonction en résultat « fonction d’ordre supérieur » Fonction qui prend une ou plusieurs fonctions en entrée et/ou renvoie une fonction T’ ------> T’’ Let f = function x -> ( function y -> x+y );; T1 T2 Type : int -> (int ->int) int -> int ->int ‘’->’’ s’associe à droite

let h = ( fun f -> (fun x -> f(x) /. x) );; h : fonction Ensemble1 : T1 Ensemble2 :T2 Ensemble3 :T3 Ensemble4 :T4 Ensemble5 :T5 Ensemble6 :T6 float float float float

let h = ( fun f -> (fun x -> f(x) /. x) );; * float float float float h: (float -> float) -> (float -> float) h: (float -> float) -> float -> float