如果我在OCaml的toplevel中执行以下命令:
输出结果为:
#require "num";;
open Ratio;;
ratio_of_int 2;;
输出结果为:
- : Ratio.ratio = <ratio 2/1>
这样的格式是如何实现的?根据源代码,Ratio.ratio是一个记录结构。因此输出应该更类似于:
{numerator = <big_int 2>; denominator = <big_int 1>; normalized = true}
我尝试查看顶层是否硬编码了比率输出,但这个搜索是徒劳的。作为OCaml的新手,我必须问一下自己是否遗漏了重要的东西?在一个有重载字符串函数的语言中,这并不奇怪,但在OCaml的情况下,我发现这种行为非常不合适。