如何解决Ocaml - 将数组作为函数的参数传递
我构建了一个函数,用户将在其中插入数组大小,然后继续插入其值
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 ---> 数组大小
10 ---> 硬币。(0)
9 ---> 硬币。(1)
8 ---> 硬币。(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 个,则不保留更多单元格)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。