CArray.Smart
The functions defined in this module are optimized specializations of the main ones, when the returned array is of same type as one of the original array.
Smart.map f a
behaves as map f a
but returns a
instead of a copy when f x == x
for all x
in a
.
Smart.map2 f a b
behaves as map2 f a b
but returns a
instead of a copy when f x y == y
for all x
in a
and y
in b
pointwise.
Smart.fold_left_mapf a b
behaves as fold_left_map
but returns b
as second component instead of a copy of b
when the output array is pointwise the same as the input array b