• [^] # Re: J'ai pas écouté le podcast, mais mon grain de sel

    Posté par (site web personnel) . En réponse au lien Is functional programming the hipster programming paradigm?. Évalué à 4.

    Tu ne peux pas copier une fonction avec sa scope, juste la passer par référence.

    Et tu n'as jamais pu le faire. Les Worker sont l'exemple parfait du fait que tu ne puisse pas copier une fonction.

    C'est comme en C, tu as des pointeurs de fonctions, que tu peux copier, mais pas la fonction en elle même.

    En Erlang / Elixir, tu as 2 types de fonctions :

    • les fonctions anonymes, qui peuvent être copiée et stockée dans un ETS/DETS/Mnesia, envoyé a un autre node du cluster pour être exécutée la bas, AVEC sa scope
    • les fonctions définies dans un module, et la tu les "copie" en passant le tuple {Module, Function, Arguments} ou Module et Function sont des atoms.

    Alors oui, assigner une fonction (sa référence) à une variable te permet d'avoir des fonctions d'ordre supérieur et de faire de la programmation fonctionnelle, mais non ça ne fait pas de ton langage un langage fonctionnel.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg