我是OCaml新手,我正在尝试编写一个简单的OCaml类语法,而我无法弄清楚这一点。我的语法允许这样的事情: let sub = fun x -> fun y -> x - y;;
但是,如果我想使用这样定义的功能,我可以这样写:(sub 7) 3但我不能写sub 7 3,这真让我心烦。出于某种原因,它被解释为好像我写了sub (7 3)(这将把7作为函数与参数3)。相关章节有: /* oth
我有一个解析器和词法分析器,用ocamlyacc和ocamllex编写。如果要解析的文件过早结束,如我在行尾忘记了分号,则应用程序不会引发语法错误。我意识到这是因为我正在提高和捕捉EOF,这使得词法分析器忽略了未完成的规则,但是我应该怎样做才能引发语法错误? 这是我的当前解析器(简化的), %{
let parse_error s = Printf.ksprinf failwith