package plato

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file array.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let get = Stdcompat.Array.get
let set = Stdcompat.Array.set
let len = Stdcompat.Array.length

let slice (type a) ?(start: int option) ?(stop: int option) ?(step: int = 1) (a: a array) : a array =
  if len a = 0 then
    [||]
  else
    let f = Stdcompat.Array.get a 0 in
    let open Helpers.Slice in
    slice
      ?start ?stop ~step
      ~sub:Stdcompat.Array.sub
      Stdcompat.Array.length Stdcompat.Array.get
      (Set (fun pos e a -> Stdcompat.Array.set a pos e)) (fun size -> Stdcompat.Array.make size f) (fun x -> x) a
OCaml

Innovation. Community. Security.