Por que o intervalo de expansão da cinta usa dois pontos em vez de três (reticências)?


10

Finalmente entendi / descobri por que nunca comecei a usar basho zshintervalo de expansão de chaves (e também ) corretamente: a sintaxe é ao {1..10}invés do que eu supunha ser uma elipse , ie {1...10}.

Posso saber por que dois pontos foram escolhidos em vez de três? O uso de reticências na programação de computadores é comum e bem compreendido, conforme indicado no link (Wikipedia), razão pela qual isso despertou minha curiosidade.


3
Aparentemente , ela se originou em Perl ...
jasonwryan

3
O uso de n1..n2na programação para indicar um intervalo de n1 a n2 antecede o Perl bastante. Consulte este Manual do Usuário Pascal de 1970, seção 6.1.2 na página 17 .
11333 Adaephon

1
Ei comentaristas, fique à vontade para transformar seus comentários em respostas ...? :)
HJK

Tenho uma vaga lembrança de que alguns idiomas agora usam ..vs. ...para incluir o ponto de extremidade correto ou não, mas posso estar errado. (? Rubi era que Ruby?)
Ulrich Schwarz

3
@ SLI Vou ter que discordar sobre a razão aqui. As perguntas da história sobre como algo surgiu não são realmente baseadas em opiniões. Os comentários já sugeriram que a resposta é apenas uma questão de história e, apesar do "porquê" no título, isso pode ser respondido de maneira bastante sólida.
Caleb

Respostas:


7

(postando como wiki da comunidade, graças às contribuições nos comentários)

É mencionado no livro From Bash to Z Shell (Capítulo 8, Página 186, " Gerando números com chaves ") que essa sintaxe é emprestada do Perl .

Além disso, também é sugerido que Pascal possuísse a ..notação de faixa que remonta a 1970 (grifo meu) (" A linguagem de programação Pascal ", Seção 6.1.2, página 17 do PDF vinculado).

Em conclusão, até o link da Wikipedia da pergunta afirmou alguns exemplos onde ..é usado. A suposição de que uma elipse é estritamente definida como uma sequência de três pontos, como é um sinal de pontuação , não se aplica aqui.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.