En Javascript, tu ne peux pas passer une fonction en tant que valeur à un Worker (thread/process) par exemple. Ce qui veut dire que la fonction n'est pas une valeur. Ce n'est donc pas un langage fonctionnel.
Les fonctions sont des « first-class citizens » en javascript, tu peux affecter une fonction à n’importe quelle variable. C’est la définition. Que les workers fonctionnent autrement c’est un autre problème non ? C’est un moyen de faire du parallélisme qui limite les possibilités de communication, sûrement à cause de la non pureté du langage. Si ce n’est pas fonctionnel, ça voudrait dire qu’avant l’introduction des Workers ça l’était et que ça ne l’est plus désormais ? C’est étrange.
Le plus vieux langage considéré comme pur est lisp il me semble, qui n’est pas pur si je ne m’abuse.
[^] # Re: J'ai pas écouté le podcast, mais mon grain de sel
Posté par thoasm . En réponse au lien Is functional programming the hipster programming paradigm?. Évalué à 3.
Les fonctions sont des « first-class citizens » en javascript, tu peux affecter une fonction à n’importe quelle variable. C’est la définition. Que les workers fonctionnent autrement c’est un autre problème non ? C’est un moyen de faire du parallélisme qui limite les possibilités de communication, sûrement à cause de la non pureté du langage. Si ce n’est pas fonctionnel, ça voudrait dire qu’avant l’introduction des Workers ça l’était et que ça ne l’est plus désormais ? C’est étrange.
Le plus vieux langage considéré comme pur est lisp il me semble, qui n’est pas pur si je ne m’abuse.