match x with
| Some x => Some (Ref x)
| None => None
end.
我必须做很多事情,嵌套匹配使代码看起来很糟糕。是否有一些更优雅的,一种班轮式的方法可以解决方案的问题?
答案 0 :(得分:6)
Coq.Init.Datatypes
中的selected: string;
filter: any;
radioChange() {
this.filter['property'] = selected;
console.log(this.filter);
}
函数定义如下:
option_map
您可以像@ejgallego在评论中显示的那样使用它:Definition option_map (A B:Type) (f:A->B) (o : option A) : option B :=
match o with
| Some a => @Some B (f a)
| None => @None B
end.
。
以下是您发现此功能的方法:
option_map Ref x
答案 1 :(得分:5)
更一般地说,您可能需要考虑使用monadic语法;使用一些Notation声明很容易定义一些自己,或者你可以使用像Gregory Malecha的ExtLib这样功能更强大的库。