【问题标题】:Ocaml: Syntax ErrorOcaml:语法错误
【发布时间】:2012-01-03 16:09:04
【问题描述】:

我试图弄清楚为什么这不起作用,我得到错误:语法错误。我错过了一个“;”某处?

let way_tags_to_hashtbl way =
  let hashtbl = Hashtbl.create 1 in
  let rec way_tags_to_hashtbl_partial list = match list with
    | a::list' -> Hashtbl.add hashtbl (a.k, a.v); way_tags_to_hashtbl_partial list'
    | a::[] -> Hashtbl.add hashtbl (a.k, a.v)
    | [] -> [];
  way_tags_to_hashtbl_partial way.wtag; hashtbl
;; <------ ERROR HERE

谢谢。

【问题讨论】:

  • 附注let rec way_tags_to_hashtbl_partial list = match list with可以写成let rec way_tags_to_hashtbl_partial = function
  • p.p.s a::[] 的情况永远不会达到,因为a::list' 已经涵盖了它

标签: ocaml


【解决方案1】:

我认为您缺少大约两行的in

let way_tags_to_hashtbl way =
  let hashtbl = Hashtbl.create 1 in
  let rec way_tags_to_hashtbl_partial list = match list with
    | a::list' -> Hashtbl.add hashtbl (a.k, a.v); way_tags_to_hashtbl_partial list'
    | a::[] -> Hashtbl.add hashtbl (a.k, a.v)
    | [] -> [] in (* !!! HERE !!! *)
  way_tags_to_hashtbl_partial way.wtag; hashtbl
;;

我这台机器上没有安装ocaml,无法检查...

【讨论】:

  • @amadan : 如果你想检查一些 ocaml 代码,你可以使用 [online toplevel][1],你不需要安装任何东西。 [1]:try.ocamlpro.com
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
  • 2014-03-15
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多