Bonjour,
je ne suis pas certain de poster dans le bon forum mais vu ma question je commence ici.
J'aimerais savoir si l'implémentation de closure dans un langage dynamique (PowerShell) fonctionne à l'identique des langages tels que le C, C#...
Enfin plus particuliérement "la capture de l'environnement lexical" est-elle différente ? C'est à dire est-ce qu'on doit capturer les variables de la portée courante ou toutes les variables accessible dans la portée ou bien seulement celles utilisées dans la closure et celles du code l'englobant?
L'objectif étant de simuler le principe des closures. J'ai aujourd'hui un script qui permet de réaliser une closure mais son inconvénient est qu'il capture de nombreuses variables qui me semblent superflues, notamment les variables globales:
J'ai trouvé une possibilité de réduire le nombre de variables capturées mais j'ai un doute sur la pertinence de ma démarche par rapport au script d'origine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function NewDecorator { param ([string]$decoration) return closure { param ([string]$text) return $decoration + $text + $decoration; }; } $sharpDecorator = NewDecorator '#'; $sharpDecorator &$sharpDecorator "hoge"; # renvoie #hoge#
Partager