¿Por qué el rango de expansión de llaves usa dos puntos en lugar de tres (puntos suspensivos)?


10

Finalmente entendí / descubrí por qué nunca llegué a usar bashel zshrango de expansión de llaves (y también ) correctamente: la sintaxis es en {1..10}lugar de lo que supuse que era una elipsis , es decir {1...10}.

¿Puedo saber por qué se eligieron dos puntos sobre tres puntos? El uso de puntos suspensivos en la programación de computadoras es común y bien entendido como lo indica el enlace (Wikipedia), por lo que esto despertó mi curiosidad.


3
Aparentemente , se originó en Perl ...
jasonwryan

3
El uso de n1..n2en programación para denotar un rango de n1 a n2 antecede bastante a Perl. Consulte este Manual del usuario de Pascal de 1970, sección 6.1.2 en la página 17 .
Adaephon

1
Hola comentaristas, ¿puedes convertir tus comentarios en respuestas ...? :)
hjk

Tengo un vago recuerdo que algunos idiomas ahora incluso usan ..vs. ...para incluir el punto final correcto o no, pero puedo estar equivocado. (¿Ruby? ¿Era Ruby?)
Ulrich Schwarz

3
@slm Voy a tener que estar en desacuerdo sobre el motivo cercano aquí. Las preguntas de historia sobre cómo surgió algo no están realmente basadas en opiniones. Los comentarios ya han insinuado que la respuesta es solo una cuestión de historia y, a pesar del "por qué" en el título, esto podría responderse con bastante solidez.
Caleb

Respuestas:


7

(publicando como wiki de la comunidad, gracias a las contribuciones en los comentarios)

Se menciona en el libro From Bash to Z Shell (Capítulo 8, página 186, " Generando números con llaves ") que esta sintaxis es prestada de Perl .

Además, también se sugiere que Pascal tenía la ..notación de rango desde 1970 (énfasis mío) (" El lenguaje de programación Pascal ", Sección 6.1.2, página 17 del PDF vinculado).

En conclusión, incluso el enlace de Wikipedia de la pregunta indica algunos ejemplos de dónde ..se usa. La suposición de que una elipsis se define estrictamente como una secuencia de tres puntos, como lo es como un signo de puntuación , no es válida aquí.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.