2 votes

Déclaration de type Haskell utilisant l'opérateur de flèche

J'ai rencontré une déclaration de type Haskell utilisant l'opérateur flèche comme suit :

type Acceleration = State -> Vec

Mais comment est-ce possible ? car je n'ai jamais rencontré une telle utilisation auparavant (dans les tutoriels d'apprentissage Haskell).

Si la déclaration est correcte, à quoi devrait ressembler sa définition ? Comment puis-je même utiliser un tel type ?

5voto

Adam Smith Points 8269

C'est un synonyme de type. Il exprime qu'un Acceleration est une fonction qui va de State à Vec.

Simplifions un peu et imaginons l'ensemble des fonctions qui vont de Int à String. Appelons-les Frobnicators.

type Frobnicator = Int -> String

Nous pouvons définir une telle fonction que nous pourrions alors dire qu'elle a un type de Frobnicator.

foo :: Frobnicator
foo = show . (+3)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X