我來愛這個語法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