tur/slice

stdlib/slice.tur
defn

slice-new

(slice-new [data length])

create a slice view over an existing contiguous int64 array.

datapointer to the first element of the underlying array
lengthnumber of elements in the view
An opaque slice handle; free with slice-free when done.

  (def s (slice-new arr 4))  ; view of first 4 elements
defn

slice-len

(slice-len [s] :int)

return the number of elements in the slice.

sslice handle from slice-new
Element count as :int.

  (slice-len s)  ; => 4
defn

slice-get

(slice-get [s i] :int)

bounds-checked element access; aborts on out-of-range index.

sslice handle from slice-new
izero-based index (must be 0 <= i < slice-len s)
The int64 value at position i.

  (slice-get s 0)  ; => first element
defn

slice-free

(slice-free [s])

free the slice header struct; does NOT free the underlying data.

sslice handle from slice-new
definstance

Functor[ptr<void>]

(definstance Functor [ptr<void>])

Functor instance for slice<T> via ptr<void> representation.

Since: Phase HKT H3

definstance

Foldable[ptr<void>]

(definstance Foldable [ptr<void>])

Foldable instance for slice<T> via ptr<void> representation.

Since: Phase HKT H3

definstance

Traversable[ptr<void>]

(definstance Traversable [ptr<void>])

Traversable instance for slice<T> via ptr<void> representation.

Since: Phase HKT H3

Internal definitions
__functor_slice_fmap-- SINCE: Phase HKT H3
__foldable_slice_foldl-- internal left-fold over a slice: accumulate from left using fn(acc, elem).
__foldable_slice_foldr-- internal right-fold over a slice: accumulate from right using fn(elem, acc).
__traversable_slice_traverse-- internal Traversable traverse for slice: apply fn to each element (v1: same as fmap).