我是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