Expression lambda

Discutez d'informatique ici !
pascal16
Membre Légendaire
Messages: 6663
Enregistré le: 01 Mar 2017, 13:58
Localisation: Angoulème : Ville de la BD et du FFA. gare TGV

expression lambda

par pascal16 » 19 Avr 2018, 21:12

Bonjour,
je programme en C# dans lequel les expressions lambda sont de plus en plus utilisées.

Je me suis amusé à calculer une suite de Fibonacci en 1 ligne :

int Fib(int n) =>n<2 ? n : Fib(n-1)+Fib(n-2);


qui se lit :
fonction qui retourne un entier, à partir d'un entier n.
si n<2, renvoyer n
sinon renvoyer cette fonction évaluée en n-1 + cette fonction évaluée en n-2 (calcul récursif)

Je pense qu'on peut faire aussi l'entrée de n et l'affichage en 1 ligne

Dans ceux qui subissent le Python en prépa, est-ce que vous avez une introduction au langage fonctionnel dont l'expression lambda est une partie ?



FLBP
Habitué(e)
Messages: 289
Enregistré le: 25 Aoû 2017, 02:07

Re: expression lambda

par FLBP » 21 Avr 2018, 12:08

Hello,
Ton algo a une complexité exponentielle (vu que tu fais deux appels de ta fonction)
En Python, ça donnerait ça en une ligne avec une fonction lambda :

Code: Tout sélectionner
fib = lambda n, a, b : a if n > 0 else fib(n-1, b, a+b)


Puisque que c'est un appel récursif terminal, sa complexité "ressemblera" à celle de l'algo itératif.

Par contre je n'ai pas mon cours de Python, désolé.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite