第 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 都是有效的。