在 SML 中使用 foldr 连接字符串

use*_*142 2 string concatenation sml fold

我正在尝试声明一个函数,字符串列表 -> 字符串,例如输入 ["Chicago","city","USA"]应该返回"Chicago city USA". 到目前为止我所做的是:

fun gather ts = foldr op ^ "" ts;
Run Code Online (Sandbox Code Playgroud)

这似乎有些道理,但问题是,我想在单词之间包含空格,因为此函数将返回"ChigagocityUSA".

sep*_*p2k 5

是的,问题是^对于两个字符串“foo”和“bar”返回“foobar”的函数,虽然你想要“foo bar”。

所以你需要做的是定义一个函数,它接受两个字符串参数(作为一个元组)并返回两个字符串,它们之间有一个空格(so string1 ^ " " ^ string2)。

然后,您可以将该函数作为参数提供给它foldr并获得您想要的结果。