Ocaml - 将数组作为函数的参数传递
Ocaml - Passing an array as an argument of a function
我构建了一个函数,用户可以在其中插入数组大小,然后继续插入其值
let array_builder =
let coin = Array.make (10000) 0 in
let number_coins = read_int() in
for i=0 to (number_coins-1) do
let k = read_int() in
coin.(i) <- (k);
done;
输入看起来像这样:
3 ---> Array size
10 ---> coin.(0)
9 ---> coin.(1)
8 ---> coin.(2)
是否可以将数组 coin 作为参数传递给另一个函数?
在 OCaml 中,数组是常规值,无需特定语法即可传递给其他函数。
也许你想要一个例子。我创建了一个像你的循环一样的虚拟函数。
let rec array_filler coin_array current_index size =
if current_index < size then
let k = read_int() in
let () = coin_array.(current_index) <- k in
array_filler coin_array (current_index + 1) size
else
coin_array
let array_builder =
let number_coins = read_int() in
let coin = Array.make number_coins 0 in
array_filler coin 0 number_coins
我还切换了 2 行,因此 number_coins
在创建数组时可用(如果用户不需要超过 10000,则不保留更多单元格)
我构建了一个函数,用户可以在其中插入数组大小,然后继续插入其值
let array_builder =
let coin = Array.make (10000) 0 in
let number_coins = read_int() in
for i=0 to (number_coins-1) do
let k = read_int() in
coin.(i) <- (k);
done;
输入看起来像这样:
3 ---> Array size
10 ---> coin.(0)
9 ---> coin.(1)
8 ---> coin.(2)
是否可以将数组 coin 作为参数传递给另一个函数?
在 OCaml 中,数组是常规值,无需特定语法即可传递给其他函数。
也许你想要一个例子。我创建了一个像你的循环一样的虚拟函数。
let rec array_filler coin_array current_index size =
if current_index < size then
let k = read_int() in
let () = coin_array.(current_index) <- k in
array_filler coin_array (current_index + 1) size
else
coin_array
let array_builder =
let number_coins = read_int() in
let coin = Array.make number_coins 0 in
array_filler coin 0 number_coins
我还切换了 2 行,因此 number_coins
在创建数组时可用(如果用户不需要超过 10000,则不保留更多单元格)