我是ocaml的新手。当我尝试执行此代码时出现以下错误。
let rec parser (edge_lst : edge list) (miniNode_lst: miniNode List) (previousNode : miniNode) (s_lst: stmt list) =
match s_lst with
| [] -> (*no more statements => Add stop node and save the graph*) (edge_lst,miniNode_lst)
| hd :: tl ->
let currentNode = createNode(hd)
in let miniNode_lst_new = miniNode_lst@[currentNode] and
edge_lst_new = edge_lst@[createEdge(previousNode,currentNode) in
parser edgePlst_new miniNode_lst_new currentNode tl;
Error: Syntax error: type expected.
请告诉我这里到底出错的地方。
答案 0 :(得分:0)
你在解析器的定义中使用List而不是list,也缺少']'(你有一个没有闭括号的开括号)。 createEdge是否在元组上运行?我相信它不是,语法应该是(使用紧密括号):
edge_lst_new = edge_lst@[createEdge previousNode currentNode] in