Perché l'intervallo di espansione del controvento utilizza due punti anziché tre (puntini di sospensione)?


10

Alla fine ho capito / scoperto perché non sono mai riuscito a usare correttamente l'intervallo di espansione della parentesi graffa bash(e anche quello zsh): la sintassi è {1..10}invece di quella che ho assunto essere un'ellissi , cioè {1...10}.

Posso sapere perché due punti sono stati scelti su tre punti? L'uso dell'ellissi nella programmazione del computer è comune e ben compreso, come indicato dal collegamento (Wikipedia), motivo per cui questo ha suscitato la mia curiosità.


3
Apparentemente , ebbe origine in Perl ...
Jasonwryan l'

3
L'uso della n1..n2programmazione per indicare un intervallo da n1 a n2 precede Perl di un bel po '. Vedere questo Manuale utente Pascal del 1970, sezione 6.1.2 a pagina 17 .
Adaephon

1
Ehi commentatori, sentiti libero di trasformare i tuoi commenti in risposte ...? :)
hjk

Ho un vago ricordo che alcune lingue ora usano persino ..vs. ...per includere o meno l'endpoint giusto, ma potrei sbagliarmi. (Ruby? Quello era Ruby?)
Ulrich Schwarz,

3
@slm Non dovrò essere d'accordo sul motivo stretto qui. Le domande di storia su come qualcosa è nato non sono realmente basate sull'opinione. I commenti hanno già lasciato intendere che la risposta è solo una questione di storia e, nonostante il "perché" nel titolo, si potrebbe rispondere in modo abbastanza solido.
Caleb,

Risposte:


7

(pubblicando invece come wiki della community, grazie ai contributi nei commenti)

Nel libro From Bash to Z Shell è menzionato (capitolo 8, pagina 186, " Generazione di numeri con parentesi graffe ") che questa sintassi è presa in prestito da Perl .

Inoltre, si suggerisce anche che Pascal avesse la ..notazione di distanza che risale al 1970 (enfasi sulla mia) (" The Programming Language Pascal ", Sezione 6.1.2, Pagina 17 del PDF collegato).

In conclusione, anche il link di Wikipedia dalla domanda ha indicato alcuni esempi di ..utilizzo. L' ipotesi che un'ellissi sia strettamente definita come una sequenza di tre punti, come è un segno di punteggiatura , non vale qui.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.