2016-06-29 1 views
3

Selon What does comparable mean in Elm?comparable est intégré dans la contrainte de type qui peut être utilisé pour limiter les variables de type à ceux des types intégrés qui sont, bien, comparables. Les questions suivantes viennent à l'esprit (et ne sont pas si faciles à trouver):contraintes de type Elm

  • Quelles sont les autres contraintes de type qui existent actuellement dans Elm? Y a-t-il une liste quelque part?
  • Est-il possible que je peux créer mes propres contraintes de type? Je présume que la réponse est non, puisque Elm n'a aucun mécanisme tel que Haskell Typeclasses en ce moment?
  • Si ce qui précède est vrai (pas de contraintes de type personnalisé), cela ne signifie pas que le polymorphisme est assez limité dans Elm, non? Par exemple, il semble que ce qui suit est pas possible en ce moment: je veux créer une fonction f qui accepte Liste des éléments (d'un même type mais incertain) dont chacun peut être utilisé comme argument pour une fonction g (c.-à-f accepte List a et de plus inst étant de type a implique que g(inst) est logique)
+0

Avez-vous vu [ces] (https://github.com/elm-lang/elm-compiler/issues/38) [deux] (https://github.com/elm-lang/elm-compiler/ issues/1039) problèmes concernant les classes de types? – pdexter

+0

Oui, j'ai vu les deux. OTOH, j'ai vu qu'il y a un concept comme 'comparable', donc je n'étais pas sûr, quel est le statut de ceci dans Elm. –

Répondre

3

en plus comparable (ints, flotteurs, caractères, chaînes, listes et tuples) il y a aussi appendable (chaînes, le texte et les listes) et number (ints et flotteurs). Je n'ai pas vu une liste faisant autorité (en dehors de la source du compilateur).

Il n'y a pas moyen de définir similaires de classes de types votre propre.

Oui, ce qui limite quelles fonctions vous pouvez écrire. Personne n'a convaincu Evan que cette limite est un problème.

+0

Merci, c'est assez clair maintenant. En outre, en regardant tout ce que les développeurs Haskell ont construit pour rendre les classes de caractères assez puissantes (et encore, beaucoup de diatribes à ce sujet!), Je comprends que Evan est réticent à ce sujet :) –