module InfiniteArray:sig
..end
type 'a
t
此模块实现无限数组。*
val make : 'a -> 'a t
make x
创建一个无限数组,其中每个槽都包含 x
。*
val get : 'a t -> int -> 'a
get a i
返回数组 a
中偏移量为 i
的元素。槽从 0 开始编号。*
val set : 'a t -> int -> 'a -> unit
set a i x
将数组 a
中偏移量为 i
的元素设置为 x
。槽从 0 开始编号。*
val extent : 'a t -> int
extent a
是数组 a
的初始段的长度,该段足够大以包含所有执行过的 set
操作。换句话说,该段之外的所有元素都具有默认值。
val domain : 'a t -> 'a array
domain a
是数组 a
的初始段的一个新的副本,其长度为 extent a
。