package exenum
Build efficient enumerations for datatypes. Inspired by Feat for Haskell.
Install
Dune Dependency
Authors
Maintainers
Sources
v0.84.0.tar.gz
sha256=d1d0f10e592895ecce69fe31cacd7572077dff4f960a6f16d223f56274be4a8f
md5=f4d7c0bf20a74918f68919ff28739b4f
doc/src/exenum.internals/extArray.ml.html
Source file extArray.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
type 'a t = { default_value : 'a ; mutable realsize : int ; mutable tab : 'a array } let create n v = { default_value = v ; realsize = 0 ; tab = Array.make n v } let copy t = { default_value = t.default_value ; realsize = t.realsize ; tab = Array.copy t.tab } let get t index = if index < 0 then failwith "extArray.get, negative index." else if index >= t.realsize then t.default_value else t.tab.(index) let set t index v = let len = Array.length t.tab in if index >= len then begin (* Resize *) let newarray = Array.make (max (index+1) (2 * len)) t.default_value in Array.blit t.tab 0 newarray 0 len ; t.tab <- newarray ; end ; t.tab.(index) <- v ; t.realsize <- max t.realsize (index+1) ; () let size t = t.realsize let fold t acu f = let akk = ref acu in for i = 0 to t.realsize - 1 do akk := f i t.tab.(i) !akk ; done ; !akk let iter t f = for i = 0 to t.realsize - 1 do f i t.tab.(i) ; done
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>