Perl user escribiste:En un lenguaje de programación los tipos de datos están conceptualizados por las operaciones que pueden realizar, eso es lo que los define, si hablamos de un vector, un vector tiene operaciones como el producto punto y puede ser utilizado para una multiplicación matricial, ¿cierto? ¿Acaso un "vector" en Perl u otro lenguaje ordinario soporta esas operaciones? No, no lo hace ( a menos que utilices el módulo PDL para esas cosas, pero originalmente no lo hace ), entonces... formalmente una lista JAMÁS ha sido un vector, el problema es que la gente le llama vector porque en algunos lenguajes "padre" se introdujo esa palabra como un array que puede crecer a las necesidades del usuario.
Corregido...
Tienes razón... lo que me pasa en mi caso es que llevo unos cuantos años trabajando en un departamento de física y los físicos lo llamaban así, como una forma de distinguirlo de una matriz de 2, 3 o más dimensiones.
He mirado el diccionario, y, lo más aproximado sería la definición dentro de la Física:
4. m. Fís. Toda magnitud en la que, además de la cuantía, hay que considerar el punto de aplicación, la dirección y el sentido. Las fuerzas son vectores.
Y sí... uso bastante el PDL... algo se pegará...
Perl user escribiste:Ahora bien como conclusión esto nos trae como consecuencia que tampoco existen como tal los tipo de datos "matrices", en C un arreglo de arreglos NO ES UNA MATRIZ ( ni tampoco un arreglo bidimensional ), en Perl una "matriz" tampoco lo es, es una referencia a un arreglo de arreglos o una referencia de referencia de arreglos
.
Sí, es cierto. Yo mismo proceso centenares de imágenes vía satélite como si fueran matrices en 2D, pero como las operaciones las hago de píxel en píxel, en realidad lo leo todo como un sólo vector. PERDÓN, ¡¡¡se me ha vuelto a escapar!!!
Prometo que intentaré no usar el nombre de vector en vano.
Y además... mientras estaba escribiendo esto, he investigado un poco y me parece que encontré la raíz del mal: en el libro "El lenguaje de programación C" de Kernighan y Ritchie -traducción al español-, al final de la sección 2.3 dice:
Técnicamente, una cadena de caracteres es un vector cuyos elementos son caracteres. ...
para luego no nombrar la palabra vector nunca más y sí en cambio usar la palabra 'arreglo' -capítulo 5-, que en sentido estricto tampoco se podría aplicar, porque la acepción más cercana que encuentro en la DRAE es
2. m. Regla, orden, coordinación.
salvo que esté equivocado.
Naturalmente, en el
libro en inglés, a todo esto lo llaman '
arrays', que según los diccionarios consultados en Internet, de inglés a castellano, son 'conjuntos'.
Entonces, mientras la definición más cercana a nosotros de 'lista' en la DRAE es:
3. f. Enumeración, generalmente en forma de columna, de personas, cosas, cantidades, etc., que se hace con determinado propósito.
resulta que hay varias definiciones de 'conjunto' que sí se pueden aplicar:
4. m. Agregado de varias personas o cosas.
6. m. Totalidad de los elementos o cosas poseedores de una propiedad común, que los distingue de otros; p. ej., los números pares.
10. m. Mat. Totalidad de los entes matemáticos que tienen una propiedad común. El conjunto de los números primos.
¿Se puede deducir entonces que es mejor aplicar la palabra conjunto que arreglo y lista? Pregunto...
Yo prefiero llamarle entonces lista, porque aparece en la documentación en inglés como 'list'.
Para liar más la madeja...
En la Wikipedia -ojo, no es sagrado todo lo que dice-, la definición de
Array es:
In computer programming, an array, also known as a vector or list, ...
y vamos... cuando Perl user entre a ver la correspondiente traducción de
Array al castellano, se tirará de los pelos:
Un array (más correctamente denominado vector), es un conjunto de variables o registros del mismo tipo... [...] Los array de 1 dimensión se denominan vectores, los de 2 o más dimensiones se denominan matrices.
Y si pretendéis buscar la definición de vector en castellano, os lleva a la de
Array, pero antes, pasa por esta
página en la que creo que entonces volvemos al principio: Perl user indica que a un vector se le podría operar con la operación punto, y aquí es donde ya no estamos de acuerdo... porque para mi es claro que a un vector matemático le puedo operar con esa operación o con cualquier otra que maneje vectores, pero cuando hago un programa y coloco una lista, sé que se trata de un conjunto de elementos y no voy a operar con él como si fuese una entidad matemática.
Seguiré preguntando a la gente de informática por aquí, pero creo que estarán de acuerdo con las definiciones que aparecen en
la página Vector de Wikipedia aunque no coincidan con la DRAE.