Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays OCaml阵列切片?_Arrays_Ocaml_Slice_Sub Array - Fatal编程技术网

Arrays OCaml阵列切片?

Arrays OCaml阵列切片?,arrays,ocaml,slice,sub-array,Arrays,Ocaml,Slice,Sub Array,我正在学习OCaml,有一件事我还没有发现如何做,那就是从数组中获取一个片段。例如,如果我想从索引2开始提取3个元素的子数组,我必须执行:[| array.(2);array.(3);array.(4)|]。这会变得单调乏味。是否有任何函数可以轻松快速地给出一个数组切片?如果不是,我将如何着手为这种行为滚动我自己的函数 非常感谢你的帮助,谢谢 存在Array.blit v1 o1 v2 o2 len将len元素从数组v1(从元素号o1开始)复制到数组v2(从元素号o2开始) 您还可以使用Arra

我正在学习OCaml,有一件事我还没有发现如何做,那就是从数组中获取一个片段。例如,如果我想从索引2开始提取3个元素的子数组,我必须执行:
[| array.(2);array.(3);array.(4)|]
。这会变得单调乏味。是否有任何函数可以轻松快速地给出一个数组切片?如果不是,我将如何着手为这种行为滚动我自己的函数


非常感谢你的帮助,谢谢

存在
Array.blit v1 o1 v2 o2 len
将len元素从数组v1(从元素号o1开始)复制到数组v2(从元素号o2开始)

您还可以使用Array.init int->(int->'a)->'a数组:

设b=Array.init3(funx->Array.(x+2))


Array.sub比blit更易于使用:

let v=[|0;1;2;3;4;5|];;
let v'=Array.sub v 2 3;;
# val v' : int array = [|2; 3; 4|]
Array.sub a
start len返回长度len的新数组,

包含数组a的元素编号startstart+len-1

这也很有用。非常感谢!