【发布时间】:2020-04-29 06:19:47
【问题描述】:
我想知道是否可以将列表分成两半(或通常在指定元素处)。
确切地说,我想做这样的事情: 有一个列表(例如整数):
let ml = [1;2;3;4;5]
我想用第一个列表的参数指定长度的两个列表。
看起来像这样:
let msl1, msl2 = split_at_point ml 3
(* msl1 = [1;2;3], msl2=[4;5] *)
老实说,我并不关心分裂是否发生在特定的点上。我所关心的是它会很快并且节省内存(没有复制会很好)。而且我知道,就效率而言,最好的方法是 O(n),其中n 是第一个列表(结果)的长度。
【问题讨论】:
标签: linked-list ocaml