CALCULATRICE, INTRODUCTION AU LAMBDA

cs_erebos Messages postés 4 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 8 décembre 2009 - 8 déc. 2009 à 15:53
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 - 16 avril 2010 à 12:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50499-calculatrice-introduction-au-lambda

xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
16 avril 2010 à 12:09
Oui l'interpréteur, renvoyais une erreur s'il n'y avait pas d'argument !
cs_erebos Messages postés 4 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 8 décembre 2009
8 déc. 2009 à 15:53
Salut,
Pourquoi la syntaxe de lambda doit etre ici de la forme lambda b=a:func(b) et pas de la forme habituelle lambda a:func(a) ? l'interpreteur se plaigant que l'on ne passe pas d'argument a lambda?

en fait la syntaxe lambda x=y:func(x) permet l'appel direct de la fonction resultante sans lui passer le parametre a traiter. Voila le detail:

def func(b):
return (b*2)

a=100

d=lambda a:func(a)
print d(100) #appel avec d() impossible

c =(lambda x:func(x))(a)
print c #resultat en utilisant la valeur de "a" directement mais "c" variable et non plus fonction

e= lambda p=a:func(p)
print e() #syntaxe permettqnt d'appeller la fonction e() directement avec la valeur de "a" sans la passer en parametre
Rejoignez-nous