OCAML-向元组列表添加元组

OCAML-向元组列表添加元组,ocaml,Ocaml,实际上,我被困在一个元组列表中添加一个元组。 这是我的密码 let rec start_of_pattern = fun c index acc patterns n -> match patterns with | [] -> acc | h::t -> start_of_pattern c index [(Char.escaped c, index, h, n)]@acc t (n+1) 我也试过: let rec start_of_pattern = fun c

实际上,我被困在一个元组列表中添加一个元组。 这是我的密码

let rec start_of_pattern = fun c index acc patterns n -> match patterns with
  | [] -> acc
  | h::t -> start_of_pattern c index [(Char.escaped c, index, h, n)]@acc t (n+1)
我也试过:

let rec start_of_pattern = fun c index acc patterns n -> match patterns with
  | [] -> acc
  | h::t -> start_of_pattern c index (Char.escaped c, index, h, n)::acc t (n+1)
我想向“acc”添加一个包含4个元素(string,int,string,int)的元组。c是一个字符,索引是一个整数,元组列表,模式是一个字符串列表,n是一个整数

我有一个错误:


我希望你们能帮助我。谢谢你的阅读

OCaml中的函数应用程序具有较高的优先级。所以这个表达式:

f x@y z
解析如下:

(f x) @ (y z)
start_of_pattern c index ([(Char.escaped c, index, h, n)]@acc) t (n+1)
看看你的第一次尝试,在我看来你需要这样插入:

(f x) @ (y z)
start_of_pattern c index ([(Char.escaped c, index, h, n)]@acc) t (n+1)

我发誓这不会解决你所有的问题。但是如果没有这些括号,看起来像是将
acc
作为函数调用。

OCaml中的函数应用程序具有较高的优先级。所以这个表达式:

f x@y z
解析如下:

(f x) @ (y z)
start_of_pattern c index ([(Char.escaped c, index, h, n)]@acc) t (n+1)
看看你的第一次尝试,在我看来你需要这样插入:

(f x) @ (y z)
start_of_pattern c index ([(Char.escaped c, index, h, n)]@acc) t (n+1)

我发誓这不会解决你所有的问题。但是如果没有这些括号,看起来像是将
acc
作为函数调用。

请将错误粘贴到问题中,而不是张贴图片。有视力问题的人可能无法阅读图片,其他遇到类似错误的人无法通过谷歌搜索错误消息找到您的图片。请将错误粘贴到问题中,而不是张贴图片。有视力问题的人可能无法阅读图片,而其他遇到类似错误的人也无法通过谷歌搜索错误消息找到您的图片。+1,但我认为最好编写
((Char.c,index,h,n)::acc)
,而不是创建单个元素列表并连接。+1,但我认为最好编写
((Char.c,index,h,n)::acc)
,而不是创建单个元素列表并连接。