F# Match with complex type

Viewed 245

I'm new to F# and I'm trying to do a simple pattern matching with a complex type but I cannot find the way of doing it. See the pseudo code below to explain the pattern matching that i want to do.

type Vector= {X:int; Y:int}

let calculateDirection vector = 
match vector with
| vector.X=0 && vector.Y>0 -> "N"    // pseudo code 
| vector.X>0 && vector.Y>0 -> "NE"   // pseudo code 
| vector.X>0 && vector.Y=0 -> "E"    // pseudo code 
| vector.X>0 && vector.Y<0 -> "SE"   // pseudo code 
| vector.X=0 && vector.Y<0 -> "S"    // pseudo code 
| vector.X<0 && vector.Y<0 -> "SW"   // pseudo code 
| vector.X<0 && vector.Y=0 -> "W"    // pseudo code 
| vector.X<0 && vector.Y>0 -> "NW"   // pseudo code 
| _ -> "Error"

I read a few tutorials (https://fsharpforfunandprofit.com/posts/match-expression/) but it's always simple scenarios and does not help me much. Or I just don't understand them clearly.

Thanks in advance.

2 Answers
Related