说我有一个形状列表:
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#的新手,我正在玩FParsec.我会使用FParsec生成AST.我想使用FsUnit围绕解析器的各个部分编写一些测试,以确保正确的操作.
我在语法上遇到了一些麻烦(对不起,确切的代码在起作用,我可以稍后发布一个具体的例子)那么如何比较两个有区别的联合(一个是预期的,另一个是实际的结果)?有人可以使用FsUnit(或NUnit)提供一个很小的代码示例吗?
一个受歧视的联合示例(非常简单)
type AST =
| Variable of string
| Class of string
| Number of int
Run Code Online (Sandbox Code Playgroud)