Articles of functional programming

UML peut-il être utilisé pour modéliser un programme fonctionnel?

Plus précisément, comment modélisez-vous un programme fonctionnel ou développé à l’aide du style fonctionnel (sans classes) à l’aide d’un diagramme et non d’une représentation textuelle? Est-ce possible? Quelqu’un pourrait-il me diriger vers l’application la plus proche? (open source, gratuit comme dans la bière, s’il vous plait)

Quel modèle de conception GoF sera modifié ou influencé par l’introduction de lambdas dans Java8?

Beaucoup affirment que la plus grande partie des modèles de conception GoF ne sont que des solutions de rechange à l’absence de fonctions de première classe. Maintenant que Java est sur le point d’obtenir des expressions lambda, lequel de ces modèles sera influencé par eux? Quels sont ceux qui peuvent être considérablement simplifiés ou généralisés? […]

Envoi dynamic dans Haskell

Les programmes écrits par exemple dans Java reposent beaucoup sur la répartition dynamic. Comment ces programmes s’expriment-ils dans des langages fonctionnels tels que Haskell? En d’autres termes, quelle est la manière de Haskell d’exprimer l’idée sous “dispatch dynamic”?

Y a-t-il des problèmes qui ne peuvent pas être écrits en utilisant la récursion de la queue?

La récursion de la queue est une méthode d’optimisation des performances importante dans les langages fonctionnels car elle permet aux appels récursifs de consumr une stack constante (plutôt que O (n)). Existe-t-il des problèmes qui ne peuvent tout simplement pas être écrits dans un style récursif, ou est-il toujours possible de convertir une fonction naïvement […]

Quelqu’un at-il des recommandations pour commencer dans la functional programming?

Je suis à la recherche de certains livres électroniques qui faciliteront mon apprentissage de la functional programming. Je n’ai pas encore décidé avec quelle langue je vais aller, mais j’ai remarqué une assez grande partialité envers LISP, Haskell et F # parmi la communauté sur StackOverflow. Pour l’instant, je ne sais pas quelle direction je […]

Transparence entre pureté et référentiel

Les termes semblent être définis différemment, mais j’ai toujours pensé à l’un impliquant l’autre; Je ne peux penser à aucun cas lorsqu’une expression est référentielle transparente mais pas pure, ou vice versa. Wikipedia maintient des articles séparés pour ces concepts et dit: De la transparence référentielle : Si toutes les fonctions impliquées dans l’expression sont […]

Existe-t-il des outils pour effectuer une parsing statique du code Scala?

Existe-t-il des outils pour effectuer une parsing statique du code Scala, similaire à FindBugs et PMD pour Java ou Splint pour C / C ++? Je sais que FindBugs fonctionne sur le bytecode produit en compilant Java, donc je suis curieux de savoir comment cela fonctionnerait sur Scala. Les recherches sur Google (au 27 octobre […]

Existe-t-il une référence de méthode pour un no-op (NOP) qui peut être utilisé pour tout ce qui concerne lambda?

Cela peut sembler une question étrange, mais existe-t-il un moyen de faire référence à une méthode standard non-op (méthode nulle, méthode null-pattern, méthode sans opération, ne rien faire) pour un Lambda en Java 8. Actuellement, j’ai une méthode qui prend, disons, un void foo(Consumer) , et je veux lui donner un no-op, je dois déclarer: […]

Existe-t-il des langues réelles prouvables? (scala?)

On m’a enseigné les systèmes formels à l’université, mais j’ai été déçu de voir à quel point ils ne semblaient pas être utilisés dans le vrai mot. J’aime l’idée de savoir que du code (object, fonction, peu importe) fonctionne, non pas par des tests, mais par des preuves . Je suis sûr que nous connaissons […]

Bind Vs Lambda?

J’ai une question concernant le style préféré: std :: bind Vs lambda en C ++ 0x. Je sais qu’ils servent à des fins différentes mais prenons un exemple de fonctionnalité croisée. En utilisant lambda : uniform_int distribution(1, 6); mt19937 engine; // lambda style auto dice = [&]() { return distribution(engine); }; En utilisant bind : […]