将列表传递给函数,添加值并打印

Pass list to function, add value and print

我正在尝试传递一个空列表,向其添加一个值,然后打印该值:

let add_to_list (my_list : string list) = 
  my_list@["somevalue"]; print_list(my_list)

let print_list lst = 
  print_string(string_of_list(lst) (fun a -> a) ",")

add_to_list [];

列表中没有任何内容。但是当我用 add_to_list ["a"; "b"] 调用它时,只有那些值显示。 Man OCaml 真的很难

@ 运算符连接两个列表,returns 结果作为一个新列表——它不影响输入。

您需要在新绑定中捕获结果,然后打印出来:

let add_to_list (my_list : string list) = 
  let new_list = my_list @ ["somevalue"] in
  print_list(new_list)