Quelles sont les idées et les idées profondes dans la conception de la Haskell, langage de programmation?

Je suis intéressé par les idées et les aperçus qui sont devenus courants dans les autres langages de programmation, ainsi que les idées et les idées qui n’a pas gagné traction ailleurs.

Réponse

Voici une liste d’idées qui étaient là en Haskell presque dès le début et sont lentement adoptées dans d’autres langages de programmation.

Collecte des ordures
A pris beaucoup de temps pour obtenir, adopté dans le courant dominant, mais finalement rattrapé.

Dispositifs de fermeture
Se produire beaucoup en Haskell, presque everyting est une fonction et n’importe quelle variable libre à l’intérieur d’une fonction est une fermeture [1].

Polymorphisme paramétrique
Marqué comme generics(Java) et templates(C++), est là en haskell depuis sa création.

Inférence de type
permet d’économiser vos doigts beaucoup de travail si vous écrivez dans un langage de programmation fortement statiquement typé. A été adoptée en c#, D, aller et C ++ 11.

Application de la fonction partielle
Les fonctions sont des objets de première classe, donc Haskell élimine le besoin de tant de modèles de conception [2]

La curryfication
Toutes les fonctions sont curryfiées en Haskell.

Expressions lambda
Lambda-calcul typé est le fondement de la famille de ML language/Haskell. Dois-je dire de plus?

Absence de null
référence null a été appelé une « erreur de milliards de dollars » par son inventeur [3]. Haskell n’est pas null et utilise un peut-être à la place. Scala et la rouille aussi empruntent cette idée.

Filtrages
Vous aide à éviter le code réutilisable tout en décomposant les structures de données. [4]

Pureté
Haskell garantit la pureté grâce à son système de type. Pensez à tous les avantages que vous obtenez lors de l’exécution des programmes parallèles. [5]

Types de données algébriques
Un type composite formé en combinant d’autres types.

Évaluation paresseuse
Une conséquence de la pureté.

Programmation des abstractions comme les monades, applicatives et flèches [6]

[1] - fermetures (en Haskell)
[2] - modèles de conception en Haskell
[3] - Tony Hoare / historiquement mauvaises idées: "Null références : l’erreur Billion Dollar"
[4] - ce qui est « Pattern Matching » dans les langages fonctionnels?
[5] - pur langage fonctionnel : Haskell
[6] - functors, Applicatives et monades en images


Tags: Programmation informatique, Langages de programmation, Nouveauté, Haskell (langage de programmation)