与OCaml中的功能匹配?

Jac*_*ack 2 ocaml function pattern-matching

是否可以直接在指定函数上使用模式匹配,或者使用一些不需要为我需要的每个函数指定类型的漏洞利用?

只是为了解释一些事情,假设我有类似的类型

type BBoolOp = (bool->bool->bool)*term*term
Run Code Online (Sandbox Code Playgroud)

并假设这些bool->bool->bool函数非常简单,就像(&&) (||)..

是否可以根据指定的功能执行不同的操作,如:

match bop with
  (||) -> do something
  | (&&) -> do something else
Run Code Online (Sandbox Code Playgroud)

这不应该是可能的,因为无法比较函数,但可能存在一个漏洞来做我正在尝试做的事情:)

提前致谢

Mic*_*and 6

正如您所提到的,比较功能是不受支持的.在某些情况下它可能会起作用,但取决于那不是好的IMO.

所以我只想使用代数数据类型来解决这个问题.您可以通过使用多态变体重新获得模式匹配功能概念的一些灵活性(不需要模式匹配代码来了解所有可能的运算符).所以要么

type BBoolOper = And | Or
type BBoolOp = BBoolOper * term * term
Run Code Online (Sandbox Code Playgroud)

要么

type BBoolOp = [<`And | `Or] * term * term (* make opened/closed as needed *)
Run Code Online (Sandbox Code Playgroud)