Mengapa rentang ekspansi brace menggunakan dua titik bukan tiga (ellipsis)?


10

Saya akhirnya mengerti / menemukan mengapa saya tidak pernah menggunakan rentang ekspansi brace bash(dan juga zsh) dengan benar: sintaksnya {1..10}bukannya apa yang saya anggap sebagai ellipsis , yaitu {1...10}.

Bolehkah saya tahu mengapa dua titik dipilih lebih dari tiga titik? Penggunaan ellipsis dalam pemrograman komputer adalah umum dan dipahami dengan baik sebagaimana ditunjukkan oleh tautan (Wikipedia), itulah sebabnya ini menggelitik keingintahuan saya.


3
Rupanya , itu berasal dari Perl ...
jasonwryan

3
Penggunaan n1..n2dalam pemrograman untuk menunjukkan kisaran dari n1 ke n2 mendahului Perl sedikit. Lihat Manual Pengguna Pascal ini dari 1970, bagian 6.1.2 di halaman 17 .
Adaephon

1
Hai komentator, jangan ragu untuk mengubah komentar Anda menjadi jawaban ...? :)
hjk

Saya memiliki ingatan yang kabur bahwa beberapa bahasa sekarang bahkan menggunakan ..vs. ...untuk memasukkan titik akhir yang benar atau tidak, tetapi saya mungkin salah. (Ruby? Apakah itu Ruby?)
Ulrich Schwarz

3
@ ms saya harus setuju pada alasan dekat di sini. Pertanyaan sejarah tentang bagaimana sesuatu terjadi tidak benar-benar berdasarkan pendapat. Komentar sudah mengisyaratkan jawabannya hanya masalah sejarah dan terlepas dari "mengapa" dalam judul ini bisa dijawab dengan cukup solid.
Caleb

Jawaban:


7

(posting sebagai wiki komunitas sebagai gantinya, berkat kontribusi di komentar)

Disebutkan dalam buku From Bash to Z Shell (Bab 8, Halaman 186, " Generating Numbers with Braces ") bahwa sintaksis ini dipinjam dari Perl .

Selain itu, disarankan juga bahwa Pascal memiliki ..jangkauan notasi yang berasal dari tahun 1970 (penekanan saya) (" Bahasa Pemrograman Pascal ", Bagian 6.1.2, Halaman 17 dari tautan PDF).

Sebagai kesimpulan, bahkan tautan Wikipedia dari pertanyaan tersebut menyatakan beberapa contoh di mana ..digunakan. The asumsi bahwa elipsis secara ketat didefinisikan sebagai urutan tiga titik, karena sebagai tanda baca , tidak berlaku di sini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.