Bonjour,
on impose d'utiliser lambda comme une variable globale. Elle ne doit donc pas passer comme paramètre de vos fonctions.
Une variable globale est définie dans le script principal via la commande dédiée, ensuite on peut supposer qu'elle est définie lorsqu'on écrit les fonctions. Lorsqu'on exécutera une fonction exploitant lambda, elle tournera en utilisant la valeur courante de lambda dans le script principal.
L'exemple ci-dessous (écrit en Python) vous montrera comment les utiliser.
> global a
>
> def f(x):
> return(x+a)
>
> print(f(0)) # Échoue car le "a" n'est pas encore défini
> Traceback (most recent call last):
> File "", line 1, in > File "", line 2, in f
> NameError: name 'a' is not defined
>
> a = 0
> print(f(0)) # Réussit, le "a" dans la fonction est le même que celui dans l'interpréteur car il est défini en global (il vaut 0)
> 0
>
> a = 2
> print(f(0)) # Réussit, le "a" est défini. Comme il a changé depuis l'appel précédent à f, la valeur renvoyée va changer
> 2
on impose d'utiliser lambda comme une variable globale. Elle ne doit donc pas passer comme paramètre de vos fonctions.
Une variable globale est définie dans le script principal via la commande dédiée, ensuite on peut supposer qu'elle est définie lorsqu'on écrit les fonctions. Lorsqu'on exécutera une fonction exploitant lambda, elle tournera en utilisant la valeur courante de lambda dans le script principal.
L'exemple ci-dessous (écrit en Python) vous montrera comment les utiliser.
> global a
>
> def f(x):
> return(x+a)
>
> print(f(0)) # Échoue car le "a" n'est pas encore défini
> Traceback (most recent call last):
> File "", line 1, in > File "", line 2, in f
> NameError: name 'a' is not defined
>
> a = 0
> print(f(0)) # Réussit, le "a" dans la fonction est le même que celui dans l'interpréteur car il est défini en global (il vaut 0)
> 0
>
> a = 2
> print(f(0)) # Réussit, le "a" est défini. Comme il a changé depuis l'appel précédent à f, la valeur renvoyée va changer
> 2