let concat (l : string list) : string = fold_right (fun a x -> a ^ x) l ""
所以要经历它,我明白了
但是,func a x
如何知道a是列表的第一个元素,而x是第二个元素。
当它再次通过时,它如何知道a是列表的第三个元素,x是第四个,依此类推?
答案 0 :(得分:1)
accumulator
是a
的第一个参数fold function
,x
依次列为set to each element
fold
{{1}走过去。
fold function
的返回值是new value
的{{1}}。
accumulator
的初始值是accumulator
,因此第一个连接的结果(empty string
)与new accumulator
的结果相同列表。
然后将first element
连接到那个,依此类推,直到到达列表的末尾,此时next element
返回fold
,即完全连接的字符串。