基本上,我想要的是以下界面的功能:
fun stringlst2string (list0(string)): string
其中stringlst2string获取字符串列表并返回它们的串联。
答案 0 :(得分:1)
可以使用标准库函数stringlst_concat
来完成此任务。有关解释,请参阅the reference,有关工作示例,请参阅this snippet。
答案 1 :(得分:0)
通过线性流可以很容易地做到这种事情(即,将一种形式的序列转换成另一种形式的序列)。例如,下面的代码将字符串列表转换为字符串流,然后转换为流(字符串)流,然后转换为字符流,然后转换为字符串:
fun
stringlst2string
(
xs: list0(string)
) : string =
strptr2string
(
string_make_stream_vt
(
stream_vt_concat
((streamize_list0_elt(xs)).map(TYPE{stream_vt(charNZ)})(lam x => streamize_string_char(x)))
)
)
就内存使用而言,这是一个非常精简的实现,并且没有最终未发布的内存(除了存储返回字符串所需的内存)。显然,如果要连接字符串数组,则应用相同的方法。