我想检查序列中是否存在特定的已区分并集的元素,如果存在,我想返回该特定元素。
type Shape =
| Rectangle of float * float
| Circle
| Prism
let rectangle1 = Rectangle(5.0,1.2)
let rectangle2 = Rectangle(2.0,1.4)
let test = [Circle;Prism;rectangle2;rectangle1]
let getShape shape =
match shape with
| Rectangle(a,b) -> Some(a)
| _ -> None
let x =
if test |> List.exists (fun shape -> (getShape shape) = Some(1.0)) then
???
elif test|> List.exists (fun shapre -> shape = Circle) then
Circle
else
Prism
对于上面的代码,我希望能够检查是否有一个矩形的元组的第一个元素为1.0的矩形
此检查有效:test |> List.exists (fun shape -> (getShape shape) = Some(1.0))
但是,我不知道如何返回从该表达式中找到的“形状”。
我希望它用于序列,但是上面的示例使用List。我想它也将适用于序列。