let memorize : int -> (index -> basic) -> (index -> basic) =
fun size ->
fun vec ->
- let memory_array = Array.create size Error in
- let index_array = Array.create size false in
+ let memory = Array.create size Error in
+ let filled = Array.create size false in
let vec_mem : index -> basic =
fun i ->
if i >= 0 && i < size then (
- if index_array.(i) then
- memory_array.(i)
+ if filled.(i) then
+ memory.(i)
else
let result = vec i in
- let () = memory_array.(i) <- result in
- let () = index_array.(i) <- true in
+ let () = memory.(i) <- result in
+ let () = filled.(i) <- true in
result)
else raise (Invalid_argument "vector overflow.") in
vec_mem;;
fun v ->
match v with
|Vec vec ->
- let result : basic array =
+ let basics : basic array =
Array.init vec#size vec#nth in
- Array.map basic_to_float result
+ Array.map basic_to_float basics
|_ -> [| (basic_to_float v)|];;