I'm trying to write a polymorphic function, which needs to do something slightly different depending on the type of the parameter. Is there any way that I can do a pattern match on the type of the object, using the builtin types? I'm thinking of something along these lines:
let to_string v =
match v with
| string -> v
| int -> string_of_int v
| _ -> ""
but this doesn't seem to be a valid OCaml program.
I have seen this question, but that doesn't quite answer my question either. I would prefer to use the standard,builtin types rather than constructing new types for this (although I can do that if that is the only way).
Actually that answer completely applies to you. You can only match one type class, and the type defined by the union of int
, string
, float
, ... does not exist, and needs to be created (as in the previous answer). 'a
operates on a particular type, but does not represent a union of all types.
You might be able to do what you want using an external C function (18.3), although, glancing at the atomic tags section, I'm not sure you'll be able to differentiate char
and int
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With