SML# Document Version 3.7.1
26.2 ARRAY_SLICE
It provides a opaque data type for sub-rage of array, array slice, and a set of primitive for the type.
signature ARRAY_SLICE =
sig
type ’a slice
val length : ’a slice -> int
val all : (’a -> bool) -> ’a slice -> bool
val app : (’a -> unit) -> ’a slice -> unit
val appi : (int * ’a -> unit) -> ’a slice -> unit
val base : ’a slice -> ’a Array.array * int * int
val collate : (’a * ’a -> order) -> ’a slice * ’a slice -> order
val copy : {src : ’a slice, dst : ’a Array.array, di : int} -> unit
val copyVec : {src : ’a VectorSlice.slice, dst : ’a Array.array, di : int} -> unit
val exists : (’a -> bool) -> ’a slice -> bool
val find : (’a -> bool) -> ’a slice -> ’a option
val findi : (int * ’a -> bool) -> ’a slice -> (int * ’a) option
val foldl : (’a * ’b -> ’b) -> ’b -> ’a slice -> ’b
val foldli : (int * ’a * ’b -> ’b) -> ’b -> ’a slice -> ’b
val foldr : (’a * ’b -> ’b) -> ’b -> ’a slice -> ’b
val foldri : (int * ’a * ’b -> ’b) -> ’b -> ’a slice -> ’b
val full : ’a Array.array -> ’a slice
val getItem : ’a slice -> (’a * ’a slice) option
val isEmpty : ’a slice -> bool
val modify : (’a -> ’a) -> ’a slice -> unit
val modifyi : (int * ’a -> ’a) -> ’a slice -> unit
val slice : ’a Array.array * int * int option -> ’a slice
val sub : ’a slice * int -> ’a
val subslice : ’a slice * int * int option -> ’a slice
val update : ’a slice * int * ’a -> unit
val vector : ’a slice -> ’a Vector.vector
end
Structures that implement the signature
-
•
ArraySlide : ARRAY_SLICE
type ’a slice (= boxed)