CSI2520  cdr vers le bas, cons vers le haut (define (traite-liste L) (if (null? L) () (cons (traite (car L)) (traite-liste (cdr L)))))

Slides:



Advertisements
Présentations similaires
Explorer un espace d’états
Advertisements

Programmation Tcl/Tk Raymond Ripp janvier 2009
Pour débutant … et autre Raymond Ripp
La gestion électronique des documents
Algorithmes à base darbre BSP. Principe Se servir dune structure arborescente afin déliminer le traitement dune branche entière sur un test de visualisation.
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).
ALGORITHMES RECURSIFS
Un langage de programmation fonctionnelle
Récursivité.
Analyser une phrase % extraire une phrase et retourner le reste
Les algorithmes: complexité et notation asymptotique
Programmation fonctionnelle Le langage LISP
Paradigmes de Programmation
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Récursion sur les Listes Peter Van Roy Département dIngénierie Informatique, UCL
CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…
CSI3525: Concepts des Languages de Programmation
Programmation fonctionnelle
Les nombres premiers Générer tous les nombres premiers de 1 à N
IFT 6800 Atelier en Technologies d’information
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.
Chapitre 3 Syntaxe et sémantique.
Partie II Sémantique.
Sémantique dénotationnelle
CSI2520 Le langage Scheme (2) Un langage de programmation fonctionnelle.
Instructions de contrôle
ECP – Option SA Henri Fallon
Algorithmique et structures de données en C
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
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.
L’essentiel du langage C
Utilisation avancée de linux
Chapitre III : Les Systèmes experts
Paradigmes des Langages de Programmation
LES PILES ET FILES.
Amélioration de la simulation stochastique
Prolog Listes Arbres en prolog Structures : bases de données
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),
CSI2520  Cette fonction permet d’attribuer une valeur à une variable (set! nombre (+ 3 4)) (set! nombre (+ 1 nombre)) En SCHEME, les fonctions dont le.
13 juin Le mécanisme de templates de Sympa.
Le langage Racket (Lisp)
Objets Opérateurs Listes
Variables et environnement utilisateur W. Barhoumi.
CSI2520 Un langage de programmation par scripting orienté-objet (et fonctionnel)
CSI2520 (map abs ‘( )) ( ) (map (lambda (x y) (* x y)) ‘( ) ‘( )) ( )  Permet d’appliquer une fonction aux.
La récursivité Mireille Goud HEG Vd AlgSD - Résurisivité.
6/10/2005 © 2005 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Récursion sur les Listes Peter Van Roy Département d’Ingénierie Informatique,
Test.
LINF 1251: Récursion sur les Listes
1 Systèmes d ’Information : 6b Michel de Rougemont Université Paris II L’Architecture Client/Server.
Philippe Gandy – 13 octobre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
IFT359 – Programmation fonctionnelle Thème #6 Appel terminaux 1.
IFT359 – Programmation fonctionnelle Thème 07 Fermeture, affectation ou monades 1.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
IFT359 – Programmation fonctionnelle Thème #10 Évaluation par environnement et évaluateur méta-circulaire 1.
IFT359 – Programmation fonctionnelle exercice backquote, unquote, unquote-splicing 1.
11 Alternative : syntaxe CSharp la structure conditionnelle : –si condition alors instruction1 sinon instruction2 fin si –En C# : if (condition) { instruction1.
Test.
Test.
test
UE2 - M22 Licence acoustique
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Instructions de contrôle
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Codage Indenter le code Limiter la portée des variables Traiter les erreurs en premier Utiliser le switch au delà de 3 tests en cascades Ne jamais utiliser.
TEST.
Quiz C++ Les variables & les boucles.
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Test test.
Transcription de la présentation:

CSI2520  cdr vers le bas, cons vers le haut (define (traite-liste L) (if (null? L) () (cons (traite (car L)) (traite-liste (cdr L)))))

CSI2520 (define (applique fct L) (if (null? L) ‘() (cons (fct (car L)) (applique fct (cdr L))))) (applique (lambda(x) (+ x 4)) ‘( )) '( )

CSI2520 (define (prefixe pre L) (applique (lambda(el) (cons pre el)) L) ) (prefixe ‘a ‘((b c) (d e)) (prefixe ‘a ‘(b c)) (prefixe ‘a ()) (prefixe ‘a ‘(()))

CSI2520 (define (combine dim set) (cond ((= dim 0) ‘(())) ((null? set) ‘()) (else (append (prefixe (car set) (combine (- dim 1) (cdr set))) (combine dim (cdr set)) ) ))

CSI2520 (define (reduce F F0 L) (if (null? L) F0 (F (car L) (reduce F F0 (cdr L))) )) (reduce * 1 '( ))

CSI2520  Boucle à N répétitions (define (boucle P N) (cond ((zero? N) ()) (#T (manipule P) (boucle P (- N 1)))))  Boucle de inf a sup (define (boucle2 P inf sup) (cond ((> inf sup) ()) (#T (manipule P) (boucle2 P (+ inf 1) sup)))) NOTE: Ces fonctions contiennent une recursivite terminale (tail recursion), plus facile a optimiser par un compilateur

CSI2520 (do ((var init update)...) (test resultIfTrue...) exprIfTestFalse...) (define fibonacci (lambda (n) (if (= n 0) 0 (do ((i n (- i 1)) (a1 1 (+ a1 a2)) (a2 0 a1)) ((= i 1) a1))))) (fibonacci 6) 8

CSI2520  Toute fonction récursive peut être mise sous forme de récursivité terminale en utilisant des variables accumulant les résultats intermédiaires (define (traite-liste2 L Lacc) (if (null? L) Lacc (traite-liste2 (cdr L) (append Lacc (list (traite (car L))))))) (define (traite-liste L) (traite-liste2 L ()))

CSI2520 (define (factorial n) (if (<= n 0) 1 (* n (factorial (- n 1))) ) ) Pour être en récursivité terminale, la fonction doit retourner le résultat de l’appel récursif sans modifications (define (factorial n) (factorialb n 1)) (define (factorialb n answer) (if (<= n 0) answer (factorialb (- n 1) (* n answer)) ) )