说我有一个形状列表:
type shape =
| Circle of float
| Rectangle of float * float
let a = [ Circle 5.0; Rectangle (4.0, 6.0)]
Run Code Online (Sandbox Code Playgroud)
我怎样才能测试一个圆圈是否存在?我可以为每个形状创建一个函数
let isCircle s =
match s with
| Circle -> true
| _ -> false
List.exists isCircle a
Run Code Online (Sandbox Code Playgroud)
但我觉得必须有F#更优雅的方式,不必定义这样的功能对于每个形状类型等.在那儿?
相关问题是如何根据形状类型对形状列表进行分组:
a |> seq.groupBy( <shapetype? >)
Run Code Online (Sandbox Code Playgroud) f# ×1