我来爱这个语法OCaml中匹配比较OCaml的
match myCompare x y with
|Greater->
|Less->
|Equal->
但是,它需要两件事情,一个自定义类型,并返回我的自定义类型myCompare功能。
如果不按照上面的步骤进行操作,会不会有呢?
普及模块似乎有'比较',如果相等则返回0,如果大于则返回pos,否则返回小于等于int。有可能匹配那些吗?概念上是这样的(不编译):
match myCompare x y with
| (>0) ->
| (0) ->
| (<0) ->
我知道我可以只使用if语句,但模式匹配对我来说更优雅。是否有一个简单的(如果不是标准的话)这样做?
+1,但我相信问题的动机是OCaml本身 - 不幸的是 - 使用有符号整数进行比较操作。 –
@AndreasRossberg我意识到写完我的回答/咆哮后。那么,Caml应该真的有一个'Greater |较少| “平等”类型并将其用于所有“比较”功能。而且它还可以省去我们写'let compare_int x y = x - y'的人(不是因为溢出而产生的传递关系)。 –
真的很遗憾,比较回报如下:(尽管+1,非常有用写出来 – Secret