Chapter 8Language extensions

11Syntax for Bigarray access

(Introduced in Objective Caml 3.00)

expr::= ...  
 expr.{  expr  { ,expr } }
 expr.{  expr  { ,expr } }<-  expr

This extension provides syntactic sugar for getting and setting elements in the arrays provided by the Bigarray module.

The short expressions are translated into calls to functions of the Bigarray module as described in the following table.

expressiontranslation
expr0.{expr1}Bigarray.Array1.get expr0expr1
expr0.{expr1} <-exprBigarray.Array1.set expr0expr1expr
expr0.{expr1,expr2}Bigarray.Array2.get expr0expr1expr2
expr0.{expr1,expr2} <-exprBigarray.Array2.set expr0expr1expr2expr
expr0.{expr1,expr2,expr3}Bigarray.Array3.get expr0expr1expr2expr3
expr0.{expr1,expr2,expr3} <-exprBigarray.Array3.set expr0expr1expr2expr3expr
expr0.{expr1,,exprn}Bigarray.Genarray.get expr0 [|expr1,,exprn |]
expr0.{expr1,,exprn} <-exprBigarray.Genarray.set expr0 [|expr1,,exprn |]expr

The last two entries are valid for any n > 3.