La programmation fonctionnelle est un paradigme de programmation basé sur la construction d'abstractions à l'aide de fonctions, évitant les effets secondaires et le changement d'état. La programmation fonctionnelle pure est thread-safe.
J'ai récemment refacturé du code deux fois afin de changer l'ordre des paramètres car il y avait trop de code où les hacks aiment flipou \x -> foo bar x 42se produisaient. Lors de la conception d'une signature de fonction, quels principes m'aideront à tirer le meilleur parti du curry?
En Python, j'aimerais écrire une fonction make_cylinder_volume(r)qui renvoie une autre fonction. Cette fonction retournée doit pouvoir être appelée avec un paramètre het renvoyer le volume d'un cylindre avec hauteur het rayon r. Je sais comment renvoyer des valeurs à partir de fonctions en Python, mais comment renvoyer une autre fonction …
Si les langages de programmation fonctionnelle ne peuvent enregistrer aucun état, comment font-ils des choses simples comme lire l'entrée d'un utilisateur? Comment «stockent-ils» l'entrée (ou stockent-ils des données d'ailleurs?) Par exemple: comment cette simple chose C se traduirait-elle en un langage de programmation fonctionnel comme Haskell? #include<stdio.h> int main() { …
Compte tenu de la liste Scala suivante: val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3")) Comment puis-je avoir: List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3")) Puisque zip ne peut être utilisé que pour combiner deux listes, je pense que vous auriez besoin d'itérer / …
J'observe la visibilité croissante des langages de programmation fonctionnels et des fonctionnalités depuis un certain temps. Je les ai examinés et je n'ai pas vu la raison de l'appel. Puis, récemment, j'ai assisté à la présentation "Basics of Erlang" de Kevin Smith à Codemash . J'ai apprécié la présentation et …
Les langages fonctionnels conduisent à l'utilisation de la récursivité pour résoudre de nombreux problèmes, et donc beaucoup d'entre eux effectuent une optimisation des appels de queue (TCO). TCO provoque les appels à une fonction à partir d'une autre fonction (ou elle-même, auquel cas cette fonctionnalité est également connue sous le …
Ce code fonctionne (pris dans le Javadoc): List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); Celui-ci ne peut pas être compilé: int[] numbers = {1, 2, 3, 4}; String commaSeparatedNumbers = Arrays.stream(numbers) .map((Integer i) -> i.toString()) .collect(Collectors.joining(", ")); IDEA me dit que …
Je veux compresser la liste de listes suivante: >>> zip([[1,2], [3,4], [5,6]]) [[1,3,5], [2,4,6]] Cela pourrait être réalisé avec l' zipimplémentation actuelle uniquement si la liste est divisée en composants individuels: >>> zip([1,2], [3,4], [5,6]) (1, 3, 5), (2, 4, 6)] Impossible de comprendre comment diviser la liste et transmettre …
J'ai un algorithme de recherche de chemin récursif de queue que j'ai implémenté en JavaScript et j'aimerais savoir si certains (tous?) Navigateurs pourraient éventuellement obtenir des exceptions de dépassement de pile.
Je vois ici des discussions intéressantes sur le typage statique et dynamique. Je préfère généralement le typage statique, en raison de la vérification du type de compilation, du code mieux documenté, etc. Cependant, je suis d'accord pour dire qu'ils encombrent le code si cela est fait comme Java, par exemple. …
Un exercice de programmation classique consiste à écrire un interpréteur Lisp / Scheme en Lisp / Scheme. La puissance de la langue complète peut être mise à profit pour produire un interprète pour un sous-ensemble de la langue. Existe-t-il un exercice similaire pour Haskell? Je voudrais implémenter un sous-ensemble de …
J'essaie de visualiser quelques systèmes physiques automatiques simples (tels que le pendule, les bras de robot, etc.) dans Haskell. Souvent, ces systèmes peuvent être décrits par des équations comme df/dt = c*f(t) + u(t) où u(t)représente une sorte de «contrôle intelligent». Ces systèmes semblent s'intégrer très bien dans le paradigme …
J'ai lu un article que j'ai pu trouver sur Internet sur le polymorphisme . Mais je pense que je ne pouvais pas tout à fait en saisir le sens et son importance. La plupart des articles ne disent pas pourquoi c'est important et comment je peux obtenir un comportement polymorphe …
Dans quelles situations devrais-je choisir d'utiliser un langage de programmation fonctionnel plutôt qu'un langage orienté objet plus verbeux comme C ++, C # ou Java? Je comprends ce qu'est la programmation fonctionnelle, ce que je ne comprends pas vraiment, c'est pour quels types de problèmes est-ce une solution parfaite?
J'ai juste fait par erreur quelque chose comme ça en C ++, et ça marche. Pourquoi puis-je faire ça? int main(int argc, char** argv) { struct MyStruct { int somevalue; }; MyStruct s; s.somevalue = 5; } Maintenant, après avoir fait cela, je me suis souvenu avoir lu quelque part …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.