Je suis novice en Haskell et j'ai rencontré une erreur simple sur ce morceau d'expression.
matches !! length . count
On ne peut pas mélanger ' ! [infixl 9] et "." [infixr 9] dans la même expression infixe.
Cela m'a surpris - pourquoi ces opérateurs partagent-ils une précendance ? Qu'est-ce qui a empêché les concepteurs de Haskell d'établir (.)
à une précendance plus élevée que (!!)
?
Je ne peux pas imaginer que cela ait été simplement négligé, donc je suppose qu'il y a une logique ici que je manque.
Nota Je réalise qu'appliquer (!!)
à la fonction qui est composée par (.)
entraînerait toujours une erreur au moment de la compilation. Je suis curieux de savoir pourquoi Haskell a été conçu d'une manière qui permet ce message d'erreur inattendu.