Considérez le code suivant:Motif incomplet assorti à f #
let list1 = [1; 2; 3; 4; 5];;
let getThird3 = function
|[] ->[];
| _::_::l3::t -> t;;
getThird3 list1;
Lorsque contrecollé sur la course de terminal fsharpi il me donne cette erreur
> let list1 = [1; 2; 3; 4; 5];;
val list1 : int list = [1; 2; 3; 4; 5]
> let getThird3 = function
- |[] ->[];
- | _::_::l3::t -> t;;
let getThird3 = function
----------------^^^^^^^^
/Users/nickolasmorales/stdin(17,17): warning FS0025: Incomplete pattern matches on this expression. For example, the value '[_;_]' may indicate a case not covered by the pattern(s).
val getThird3 : _arg1:'a list -> 'a list
Toutes les suggestions? J'ai essayé d'utiliser les deux: seulement TAB et l'espace mais il ne reconnaît rien après la fonction.
Pouvez-vous préciser ce que vous attendez en sortie? Comme c'est basé sur votre question et vos commentaires sur la réponse, je ne sais pas ce que vous voulez. – jdphenix
BTW, il vous manque un deuxième point-virgule sur la dernière ligne ('getThird3 list1;' devrait être 'getThird3 list1 ;;'). C'est peut-être la raison pour laquelle, même lorsque vous corrigez votre fonction pour gérer des listes avec un ou deux éléments en entrée, vous ne voyez toujours pas les résultats. F # n'a pas besoin de points-virgules entre les expressions, mais l'interpréteur interactif F # utilise des points-virgules ** doubles ** entre les expressions pour qu'il sache quand vous avez terminé avec l'entrée. (Parce que ** les ** points virgules sont un opérateur valide, utilisé dans les listes). – rmunn