length(): documents changes for cells and structures arrays 11/19411/3
Samuel GOUGEON [Thu, 31 Aug 2017 00:52:41 +0000 (02:52 +0200)]
Change-Id: Icf44217186a6fe4c4a3a254ae4770f4584547c67

scilab/CHANGES.md
scilab/modules/string/help/en_US/length.xml
scilab/modules/string/help/ja_JP/length.xml
scilab/modules/string/help/pt_BR/length.xml
scilab/modules/string/help/ru_RU/length.xml

index 59104f5..9e2c9b2 100644 (file)
@@ -217,6 +217,7 @@ bounds selected out of the axes areas is now restored, after the Scilab 5.4 regr
    the proper Scilab component, and other files with the proper OS application.
    All files were formerly opened in Scinotes and could make it frozen.
 * `size` can now be overloadable for tlist lists, as it already could for mlist lists.
+* For arrays of cells or structures, `length` now returns their number of elements.
 * `gcd` now accepts `int64` and `uint64` integers. The input can now be any array instead of a row.
 * `gcd` and `lcm` of integers now return always a positive result.
 * `cat` has been rewritten. It is now fast and can process heavy arrays at high dimensions.
@@ -260,8 +261,14 @@ Data Structures
 * cells:
   - insertion and extraction must be done via `()` or `{}.`
   - `.dims` and `.entries` fields have been removed, please use `size` and `()` instead.
+  - `length()` of a cells array is now the number of its primary components (without recursive
+     counting). It is equivalent to `size( ,"*")`. It was formerly always equal to 3. It is now
+        consistent with the definition for all types of Scilab arrays.
 * struct
-  - `.dims` field has been removed, please use `size` instead.
+  - `.dims` field has been removed, please use size instead.
+  - `length()` of a structures array is now the number of its primary components (without recursive
+     counting). It is equivalent to `size( ,"*")`. It was formerly equal to its number of
+        fields + 2. It is now consistent with the definition for all types of Scilab arrays.
 * hypermatrix:
   - hypermatrices are natively managed (without `mlist` overloading).
   - `typeof` now returns the actual data type like `constant`, `string`, ... instead of `hypermat`
index b2228b4..331c265 100644 (file)
             given by <function>size</function>).
         </para>
         <para>
+            The length of an array M of cells or of structures is the number of elements of the array.
+            It is equivalent to <literal>size(M, "*")</literal>.
+        </para>
+        <para>
             The length of a mlist is by default the number of elements in the
             mlist, but you can overload it (see example). Note that for a non-string
             hypermatrix, there is no need to overload the function. Indeed, <function>length</function>
@@ -121,6 +125,25 @@ length(a)
                     This function allows overloading for mlist type.
                 </revremark>
             </revision>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revremark>
+                    <itemizedlist>
+                        <listitem>
+                            The <literal>length()</literal> of any array C of cells was formerly
+                            always 3, whatever are the number of dimensions and the sizes of the
+                            array. It is now the number of elements of the array at null depth
+                            (without recursive counting), equal to <literal>size(C, "*")</literal>.
+                        </listitem>
+                        <listitem>
+                            The <literal>length()</literal> of any array S of structures was formerly
+                            equal to its number of fields +2, whatever are the number of dimensions
+                            and the sizes of the array. It is now the number of elements of the
+                            array at null depth, equal to <literal>size(S, "*")</literal>.
+                        </listitem>
+                    </itemizedlist>
+                </revremark>
+            </revision>
         </revhistory>
     </refsection>
 </refentry>
index a7a737a..fe3d250 100644 (file)
             (<literal>size</literal>でも出力されます).
         </para>
         <para>
+            The length of an array M of cells or of structures is the number of elements of the array.
+            It is equivalent to <literal>size(M, "*")</literal>.
+        </para>
+        <para>
             mlistのlengthはデフォルトでmlistの要素数ですが,
             オーバーロードすることができます(例参照).
             文字列でないハイパー行列は,
@@ -116,6 +120,25 @@ length(a)
                     この関数によりmlist型のオーバーロードが可能となりました.
                 </revremark>
             </revision>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revremark>
+                    <itemizedlist>
+                        <listitem>
+                            The <literal>length()</literal> of any array C of cells was formerly
+                            always 3, whatever are the number of dimensions and the sizes of the
+                            array. It is now the number of elements of the array at null depth
+                            (without recursive counting), equal to <literal>size(C, "*")</literal>.
+                        </listitem>
+                        <listitem>
+                            The <literal>length()</literal> of any array S of structures was formerly
+                            equal to its number of fields +2, whatever are the number of dimensions
+                            and the sizes of the array. It is now the number of elements of the
+                            array at null depth, equal to <literal>size(S, "*")</literal>.
+                        </listitem>
+                    </itemizedlist>
+                </revremark>
+            </revision>
         </revhistory>
     </refsection>
 </refentry>
index c48f5b8..73b6ff9 100644 (file)
             dado por <literal>size</literal>).
         </para>
         <para>
+            The length of an array M of cells or of structures is the number of elements of the array.
+            It is equivalent to <literal>size(M, "*")</literal>.
+        </para>
+        <para>
             <literal>length('123')</literal> é <literal>3</literal>.
             <literal>length([1,2;3,4])</literal> is <literal>4</literal>.
         </para>
@@ -79,4 +83,34 @@ length(['olá mundo',SCI])
             </member>
         </simplelist>
     </refsection>
+    <refsection>
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>5.4.0</revnumber>
+                <revremark>
+                    This function allows overloading for mlist type.
+                </revremark>
+            </revision>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revremark>
+                    <itemizedlist>
+                        <listitem>
+                            The <literal>length()</literal> of any array C of cells was formerly
+                            always 3, whatever are the number of dimensions and the sizes of the
+                            array. It is now the number of elements of the array at null depth
+                            (without recursive counting), equal to <literal>size(C, "*")</literal>.
+                        </listitem>
+                        <listitem>
+                            The <literal>length()</literal> of any array S of structures was formerly
+                            equal to its number of fields +2, whatever are the number of dimensions
+                            and the sizes of the array. It is now the number of elements of the
+                            array at null depth, equal to <literal>size(S, "*")</literal>.
+                        </listitem>
+                    </itemizedlist>
+                </revremark>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 824995d..47dd3f5 100644 (file)
             Длина списка - это количество элементов в списке (также получается с помощью функции <function>size</function>).
         </para>
         <para>
+            Длина cell-массива или массива структур <literal>M</literal> - это количество элементов массива.
+            Это эквиваалентно <literal>size(M, "*")</literal>.
+        </para>
+        <para>
             Длина матричноориентированного списка (mlist) равна по умолчанию
             количеству элементов в этом списке, но вы можете перегрузить <function>length</function> (см. пример).
         </para>
@@ -116,6 +120,25 @@ length(a)
                     Эта функция позволяет перегрузку для типа mlist.
                 </revremark>
             </revision>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revremark>
+                    <itemizedlist>
+                        <listitem>
+                            Функция <literal>length()</literal> для любого cell-массива <literal>C</literal>
+                            ранее всегда была равна 3, каким бы ни было количество размерностей и размеры массива.
+                            Теперь это количество элементов массива нулевой глубины (не считая рекурсии),
+                            эквивалентно инструкции <literal>size(C, "*")</literal>.
+                        </listitem>
+                        <listitem>
+                            Функция <literal>length()</literal> для любого массива структур <literal>S</literal> 
+                            ранее была эквивалентна количеству её полей плюс 2, каким бы ни было количество
+                            размерностей и размеры массива. Теперь это количество элементов массива нулевой
+                            глубины, эквивалентно инструкции <literal>size(S, "*")</literal>.
+                        </listitem>
+                    </itemizedlist>
+                </revremark>
+            </revision>
         </revhistory>
     </refsection>
 </refentry>