首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能用tuareg模式的C命令来评估这个OCaml行?

为什么我不能用tuareg模式的C命令来评估这个OCaml行?
EN

Stack Overflow用户
提问于 2011-04-23 23:42:13
回答 1查看 364关注 0票数 1

背景:我正在使用Emacs23.3、OCaml 3.12.0和Tuareg1.45.7。

我正在查看Hickey OCaml书,并试图在pg上运行这些示例。这本书157个,.pdf 167个。问题出现在表达式中。

代码语言:javascript
复制
type ’a blob = < draw : unit; .. > as ’a

当我在tuareg模式下将其输入emacs缓冲区并尝试使用C-c C-e对其进行评估时,我在caml toplevel中得到以下错误:

代码语言:javascript
复制
# type 'a blob = < draw : unit; .. > as ';;
Characters 39-41:
  type 'a blob = < draw : unit; .. > as ';;
                                         ^^
Error: Syntax error

注意最后的a如何没有出现在发送给toplevel的命令中。如果我直接将这一行输入到toplevel中,它就能正常工作:

代码语言:javascript
复制
# type 'a blob = < draw : unit; .. > as 'a;;
type 'a blob = 'a constraint 'a = < draw : unit; .. >

所以我的问题是:为什么这个不起作用,我怎样才能解决它?更新tuareg似乎不是一个选项:我尝试过使用Tuareg2.0版本,但这甚至无法正确加载。

Update:这是在12/8/12的图阿雷格SVN主干中修复的。

代码语言:javascript
复制
svn checkout svn://svn.forge.ocamlcore.org/svn/tuareg/trunk

记住通常关于开发和发行版本的注意事项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-24 06:06:16

那是图阿雷格的一个虫子。由于某种原因,他不能正确计算短语的结尾。要解决这个问题,有两种可能性:

  • 将您的类型括在括号中:type 'a t = (<..> as 'a)工作
  • 手动将其发送到toplevel :复制行,将其粘贴到toplevel缓冲区中,并添加;; (在toplevel中添加短语分隔符,在可以推断时在源代码中是可选的)。

编辑:它似乎是错误已经被报告在上游。希望他们迟早会修好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5767694

复制
相关文章

相似问题

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