我使用的是版本4的Ocaml。当我以交互方式定义某个类型时,解释器会立即打印出该类型的字符串表示:
# type foo = Yes | No;; <-- This is what I entered
type foo = Yes | No <-- This is what interpreter bounced
但是在我输入更多的定义之后,有时我想再次看到类型的文本表示。
在Haskell中,我可以输入":t foo“。
我如何在Ocaml中做到这一点?
发布于 2014-05-05 21:24:42
在utop中,您可以使用#typeof
指令:
#typeof "list";;
type 'a list = [] | :: of 'a * 'a list
您可以将值和类型放在双引号内:
let t = [`Hello, `World];;
#typeof "t";;
val t : ([> `Hello ] * [> `World ]) list
另外,更好的解决方案是使用merlin。
发布于 2013-01-15 21:07:54
据我所知,在Ocaml中实际上没有办法在字符串形式下检索类型信息
您必须为您的每种类型构建一个模式匹配
type foo = Yes | No;;
let getType = function
|Yes -> "Yes"
|No -> "No"
;;
let a = Yes;;
print_string (getType a);;
https://stackoverflow.com/questions/14291326
复制相似问题