Posté par lasher .
En réponse au journal Plonk.
Évalué à 2.
Oui, je pensais aux lambdas qui simplifient pas mal de choses.
Ensuite, de mon point de vue de chercheur en parallélisme (« argument » d'autorité, je sais), franchement, créer une fermeture ou un thread dans un langage « fait pour »1, c'est très proche au final. :) Après tout, il faut capturer le contexte, puis appliquer un traitement dessus avec par-dessus le marché des paramètres qui, eux, peuvent varier. Bon ben, la différence entre une fermeture et un thread à ce niveau c'est que le thread peu en plus s'exécuter en parallèle.
Et surtout, je trouve que la syntaxe n'est ni plus ni moins compliquée que pour d'autres langages qui chercheraient à faire quelque chose d'équivalent. Par exemple en Perl, pour créer une fermeture on peut écrire ainsi :
# Exemple complètement artificiel.my$fixed_arg=shift@ARGV;my$cmp_fixed_arg_with=sub {my$operand=shift;return$operand<=>$fixed_arg;};say"$fixed_arg ".($cmp_fixed_arg_with($_)==0?'==':'=/=')." $_"for(1..100);
On peut trouver ça « naturel » ou « intuitif » ou au contraire « compliqué ». Je pense que c'est principalement un problème d'habitude et d'exposition à des langages divers.
Pour moi, les règles de portée lexicale en Javascript (ou en Perl, ou en ...) sont quand même très bien définies, et la façon de limiter cette portée parfaitement logique quand on considère la syntaxe du langage en lui même. Donc le langage permet de relativement facilement créer ce dont il est question dans ce fil de discussion. ↩
[^] # Re: Fonction
Posté par lasher . En réponse au journal Plonk. Évalué à 2.
Oui, je pensais aux lambdas qui simplifient pas mal de choses.
Ensuite, de mon point de vue de chercheur en parallélisme (« argument » d'autorité, je sais), franchement, créer une fermeture ou un thread dans un langage « fait pour »1 , c'est très proche au final. :) Après tout, il faut capturer le contexte, puis appliquer un traitement dessus avec par-dessus le marché des paramètres qui, eux, peuvent varier. Bon ben, la différence entre une fermeture et un thread à ce niveau c'est que le thread peu en plus s'exécuter en parallèle.
Et surtout, je trouve que la syntaxe n'est ni plus ni moins compliquée que pour d'autres langages qui chercheraient à faire quelque chose d'équivalent. Par exemple en Perl, pour créer une fermeture on peut écrire ainsi :
On peut trouver ça « naturel » ou « intuitif » ou au contraire « compliqué ». Je pense que c'est principalement un problème d'habitude et d'exposition à des langages divers.
Pour moi, les règles de portée lexicale en Javascript (ou en Perl, ou en ...) sont quand même très bien définies, et la façon de limiter cette portée parfaitement logique quand on considère la syntaxe du langage en lui même. Donc le langage permet de relativement facilement créer ce dont il est question dans ce fil de discussion. ↩