Скажем, у меня есть список форм:F #: как изящно выбирать и группировать дискриминационные союзы?
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? >)
(немного OT) Это напоминает мне, что время [подсветка кода поддерживается для F #] (http://meta.stackexchange.com/questions/58934/hight-time-for-code-highlighting-f-snippets) (!) – Abel
См. Http://meta.stackexchange.com/questions/981/syntax-highlighting-hints, на языке SO нет языковой подсветки. – Brian