我是F#的新人:)
我有a =[[|"hi"|];[|"how";"are"|];[|"you"|];[|"fine";"and";"you"|]]
我想添加这样的值:
b = [[|"12345";"hi"|];[|"32443";"how";"are"|];[|"32422";"you"|];[|"23232";"fine";"and";"you"|]]
这些数字字符串值来自字符串列表
c = (["12345";"32443";"32422";23232])
a和b都有相同的长度。我怎么能这样做?
非常感谢!
答案 0 :(得分:1)
您可以使用List.map2
函数,它会获取您的2个列表a
和c
,并为a和c中的每对元素运行一个函数:
let b = List.map2 (fun number array -> Array.append [|number|] array) c a
请注意Array.append
将创建新数组。如果a
的元素不必是数组,而是可以是列表,那么效率会更高。这是因为在列表中首先添加元素是一种非常快速的操作,并且它不会创建新列表:
let a = [["hi"];["how";"are"];["you"];["fine";"and";"you"]]
let b = List.map2 (fun number ls -> number::ls) c a