第 12 章 语言扩展

11 Bigarray 访问语法

(在 Objective Caml 3.00 中引入)

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

此扩展提供用于获取和设置 Bigarray 模块提供的数组中的元素的语法糖。

这些简短的表达式被翻译成对 Bigarray 模块函数的调用,如以下表格中所述。

表达式翻译
expr0.{expr1}Bigarray.Array1.get expr0 expr1
expr0.{expr1} <-exprBigarray.Array1.set expr0 expr1 expr
expr0.{expr1, expr2}Bigarray.Array2.get expr0 expr1 expr2
expr0.{expr1, expr2} <-exprBigarray.Array2.set expr0 expr1 expr2 expr
expr0.{expr1, expr2, expr3}Bigarray.Array3.get expr0 expr1 expr2 expr3
expr0.{expr1, expr2, expr3} <-exprBigarray.Array3.set expr0 expr1 expr2 expr3 expr
expr0.{expr1,, exprn}Bigarray.Genarray.get expr0 [| expr1,, exprn |]
expr0.{expr1,, exprn} <-exprBigarray.Genarray.set expr0 [| expr1,, exprn |] expr

最后两项对于任何 n > 3 都是有效的。