2016-02-28 7 views
6

Lassen Sie uns sagen, dass wir einen uniontype in F # haben:Wie kann man eine Funktion erstellen, die prüft, ob die Bezeichnungen der diskriminierten Gewerkschaften übereinstimmen?

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

Wie Sie eine Funktion erstellen können, die zwei Parameter des Typs „Beispiel“ nimmt und gibt true zurück, wenn die beiden Parameter das gleiche Label teilen und sonst gibt false zurück? Ich möchte, dass diese Funktion diese Ergebnisse unabhängig vom Wert der ganzen Zahlen zurückgibt.

Wenn wir also parameter1 und parameter2 mit

val parameter1 : Example = SecondLabel 2 

und

val parameter2 : Example = Secondlabel 5 

die Funktion true würde zurückkehren

ich keine Antwort auf diese Frage auch durch die Suche gründlich finden konnten. Vielleicht habe ich falsch gesucht. Könnten Sie mir auch eine Quelle geben, um solche Probleme zu lösen?

Antwort

7
let sameLabels x y = 
    match x, y with 
    | FirstLabel _ , FirstLabel _ 
    | SecondLabel _, SecondLabel _ 
    | ThirdLabel _ , ThirdLabel _ -> true 
    | _ -> false 
Verwandte Themen