toString() equivalent in OCaml

ocaml

Solution

There are functions like string_of_int, string_of_float, string_of_bool in the Pervasives module (you don't have to open the Pervasives module because it's... pervasive).

Alternatively, you can use Printf to do this kind of output. For example:

let str = "bar" in
let num = 1 in
let flt = 3.14159 in
Printf.printf "The string is: %s, num is: %d, float is: %f" str num flt 

There's also a sprintf function in the Printf module, so if you wanted to just create a string instead of printing to stdout you could replace that last line with:

let output = Printf.sprintf "The string is: %s, num is: %d, float is: %f" str num flt

For more complex datatypes of your own definition, you could use the Deriving extension so that you woudn't need to define your own pretty-printer functions for your type.

Problem

I am new to OCaml and trying to debug some OCaml code. Is there any function in OCaml equivalent to `toString()` function in Java by which most of the objects can be printed as output?

Original source