Recursion OCaml:将列表中的每个字符串转换为字符串列表

Recursion OCaml:将列表中的每个字符串转换为字符串列表,recursion,ocaml,Recursion,Ocaml,我有两个功能,一个是 let make_row delim str = List.map String.trim (Str.split (Str.regexp delim) str) 另一个是 let rec table_of_stringlist delim rlist = match rlist with | h::[]-> make_row delim h | h::t -> table_of_stringlist delim (make_row delim h)::t)

我有两个功能,一个是

let make_row delim str = List.map String.trim (Str.split (Str.regexp delim) str)
另一个是

let rec table_of_stringlist delim rlist = match rlist with
| h::[]-> make_row delim h
| h::t -> table_of_stringlist delim (make_row delim h)::t)
但是第二个给我带来了麻烦。我试图使其本质上
表[u-stringlist d[r1;r2;…;rN]
应计算为
[(make\u-row d r1);(make\u-row d r2);(make\u-row d rN)]
。值d是一个分隔符,例如
表u of_stringlist“|”[“a | b | c”;“d | e”]
应评估为
。我对如何在第二个函数中编写匹配案例感到困惑。任何帮助都会很好。

您需要在构建递归函数时将新列表(表)传递给它,在到达
rlist

让rec table\u of_stringlist delim rlist table=将rlist与
|[]->表格
|h::t->
让new_row=make_row delim h进入
stringlist delim t的表(表@[新行])
当您第一次调用它时,将一个空列表作为
传入

注意:我还没有实际测试上面剪下的部分,所以它在语法上可能不正确,但它应该接近您所需要的


如果不实现table,有什么好方法可以实现它?所以我只是把rlist中的字符串转换成一个stringsYeah列表,这就是它所做的,这个表就是一个字符串列表在这种情况下,我只是把它命名为
table
你可以随意调用它依赖于rlist的大小,在列表的右边连接可能效率低下