Скажем, у меня есть список фигур:
type shape =
| Circle of float
| Rectangle of float * float
let a = [ Circle 5.0; Rectangle (4.0, 6.0)]
Как я могу затем проверить, например. Круг существует в a? Я мог бы создать функцию для каждой фигуры
let isCircle s =
match s with
| Circle -> true
| _ -> false
List.exists isCircle a
но я считаю, что в F # должен быть более элегантный способ, кроме необходимости определять такую функцию для каждого типа фигуры. Есть?
Связанный вопрос заключается в том, как сгруппировать список фигур на основе типов фигур:
a |> seq.groupBy( <shapetype? >)