Types 内置类型上的OCaml模式匹配

Types 内置类型上的OCaml模式匹配,types,pattern-matching,ocaml,Types,Pattern Matching,Ocaml,我正在尝试编写一个多态函数,它需要根据参数的类型做一些稍微不同的事情。是否有任何方法可以使用内置类型对对象的类型进行模式匹配?我在想一些类似的事情: let to_string v = match v with | string -> v | int -> string_of_int v | _ -> "" 但这似乎不是一个有效的OCaml程序 我看到了,但这也不能完全回答我的问题。我更喜欢使用标准的内置类型,而不是为此构建新类型(尽管如果这是

我正在尝试编写一个多态函数,它需要根据参数的类型做一些稍微不同的事情。是否有任何方法可以使用内置类型对对象的类型进行模式匹配?我在想一些类似的事情:

let to_string v =
    match v with
    | string -> v
    | int -> string_of_int v
    | _ -> ""
但这似乎不是一个有效的OCaml程序


我看到了,但这也不能完全回答我的问题。我更喜欢使用标准的内置类型,而不是为此构建新类型(尽管如果这是唯一的方法,我可以这样做)。

事实上,这个答案完全适用于您。您只能匹配一个类型类,以及由
int
string
float
、。。。不存在,需要创建(如前一个答案所示)
'a
对特定类型进行操作,但并不表示所有类型的并集


您可能可以使用外部C函数()来做您想要做的事情,不过,看一下原子标记部分,我不确定您是否能够区分
char
int

:(-这正是我所担心的。哦,我想我的程序看起来不太好。你为什么要尝试这样做?可能有更好的方法。我想我可以用这种方法编写多态函数,为我需要的不同类型提供重写,但是再仔细考虑一下,我可能需要无论如何都要使用变体,因为我最终也会进行词法分析。