2016-02-28 8 views
6

Powiedzmy mamy uniontype w F #:Jak utworzyć funkcję, która sprawdza, czy oznaczenia dyskryminowanych związków pasują do siebie?

type Example = 
    |FirstLabel of int 
    |SecondLabel of int 
    |ThirdLabel of int 

Jak można utworzyć funkcję, która trwa 2 parametry typu „przykładu” i zwraca true, jeśli oba parametry dzielić tę samą etykietę i else zwraca false? Chcę, aby funkcja zwracała te wyniki, niezależnie od wartości liczb całkowitych.

Więc jeśli mamy parametr1 i parametr2 z

val parameter1 : Example = SecondLabel 2 

i

val parameter2 : Example = Secondlabel 5 

funkcja wróci true

nie mogłem znaleźć odpowiedź na to pytanie nawet dokładnie szukają. Może wyszukiwałam niesłusznie. Czy możesz mi również podać źródło rozwiązania takich problemów?

Odpowiedz

7
let sameLabels x y = 
    match x, y with 
    | FirstLabel _ , FirstLabel _ 
    | SecondLabel _, SecondLabel _ 
    | ThirdLabel _ , ThirdLabel _ -> true 
    | _ -> false 
Powiązane problemy