2011-02-02 4 views
2

Existe-t-il un moyen de moduler la correspondance dans F # afin qu'il vérifie si les deux éléments d'un couple de deux éléments sont égaux. Je suis incroyablement nouveau à F #, et aussi nouveau à l'ensemble du concept de Pattern Matching en général. Je pensais quelque chose dans le genre de ...F # Tuple Pattern Matching Question

let rec funct = function 
    |(xs, xs) -> 0 
    etc. etc. etc. 

Mais je suppose que ce serait trop facile hah. Aucune suggestion? Ou y a-t-il même un moyen de le faire? Merci pour votre aide, vous êtes incroyablement utile!

Répondre

2

La réponse de Brian est correct, mais puisque vous avez aussi posé des questions sur d'autres façons je vais ajouter une alternative - je ne l'utilise généralement pas match travailler avec tuples parce que simple la décomposition réussira toujours (sauf si vous utilisez des motifs compliqués ou when). Lors de l'écriture d'une fonction, j'écrirais probablement:

let funct (x, y) = 
    if x = y then ... 
    else ... 

(Mais bien sûr, cela dépend du contexte - le if est probablement bon pour les petites fonctions)