首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在交互式Ocaml中获取类型信息?

如何在交互式Ocaml中获取类型信息?
EN

Stack Overflow用户
提问于 2013-01-12 15:33:55
回答 2查看 5.9K关注 0票数 21

我使用的是版本4的Ocaml。当我以交互方式定义某个类型时,解释器会立即打印出该类型的字符串表示:

代码语言:javascript
复制
# type foo = Yes | No;;         <-- This is what I entered
type foo = Yes | No             <-- This is what interpreter bounced

但是在我输入更多的定义之后,有时我想再次看到类型的文本表示。

在Haskell中,我可以输入":t foo“。

我如何在Ocaml中做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2014-05-05 21:24:42

在utop中,您可以使用#typeof指令:

代码语言:javascript
复制
#typeof "list";;
type 'a list = [] | :: of 'a * 'a list 

您可以将值和类型放在双引号内:

代码语言:javascript
复制
let t = [`Hello, `World];;
#typeof "t";;
val t : ([> `Hello ] * [> `World ]) list   

另外,更好的解决方案是使用merlin。

票数 15
EN

Stack Overflow用户

发布于 2013-01-15 21:07:54

据我所知,在Ocaml中实际上没有办法在字符串形式下检索类型信息

您必须为您的每种类型构建一个模式匹配

代码语言:javascript
复制
type foo = Yes | No;;

let getType = function
  |Yes -> "Yes"
  |No -> "No"    
  ;;

let a = Yes;;
print_string (getType a);;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14291326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档