Vous pouvez google pour haskell "double colon"
ou choses semblables; c'est malheureusement un peu difficile de google pour la syntaxe, mais dans ce cas, vous pouvez lui donner un nom.
En Haskell, vos programmes s'exécutent souvent très bien sans elle (si vous voulez l'utiliser pour affiner la spécification de toutes les fonctions que vous définissez, et il est de bonne pratique).
L'idée est que vous pouvez insérer un :: ...
partout (même au milieu d'une expression-à-dire "par la façon dont M. Compilateur, cette expression doit être de type ...
". Le compilateur va alors se jeter une erreur s'il peut être prouvé cela peut ne pas être le cas.
Je pense que vous pouvez aussi l'utiliser pour le "cast" fonctionne pour les versions que vous voulez; par exemple, si une fonction est "polymorphe" (a un type général de la signature) et que vous voulez vraiment, disons qu'un Integer
, alors vous pourriez le faire :: Integer
sur la valeur qui en résulte peut-être, je suis un peu rouillé mais.