Tại sao phạm vi mở rộng niềng răng sử dụng hai dấu chấm thay vì ba (dấu chấm lửng)?


10

Cuối cùng tôi đã hiểu / phát hiện ra lý do tại sao tôi không bao giờ phải sử dụng phạm vi mở rộng cú đúp bashcủa (và cũng zshlà) một cách chính xác: cú pháp {1..10}thay vì những gì tôi giả sử là dấu chấm lửng , tức là {1...10}.

Tôi có thể biết tại sao hai chấm được chọn trên ba chấm không? Việc sử dụng dấu chấm lửng trong lập trình máy tính là phổ biến và được hiểu rõ như được chỉ ra bởi liên kết (Wikipedia), đó là lý do tại sao điều này khơi gợi sự tò mò của tôi.


3
Rõ ràng , nó bắt nguồn từ Perl ...
jasonwryan 11/03/2015

3
Việc sử dụng n1..n2trong lập trình để biểu thị một phạm vi từ n1 đến n2 trước Perl khá nhiều. Xem Hướng dẫn sử dụng Pascal này từ năm 1970, phần 6.1.2 trên trang 17 .
Adaephon 11/03/2015

1
Này các bình luận viên, cứ thoải mái biến bình luận của bạn thành câu trả lời ...? :)
hjk

Tôi có một hồi ức mơ hồ rằng một số ngôn ngữ bây giờ thậm chí sử dụng ..so ...với bao gồm cả điểm cuối đúng hay không, nhưng tôi có thể sai. (Ruby? Đó có phải là Ruby không?)
Ulrich Schwarz

3
@slm Tôi sẽ không đồng ý với lý do gần đây. Các câu hỏi lịch sử về việc làm thế nào một cái gì đó không thực sự dựa trên ý kiến. Các bình luận đã ám chỉ câu trả lời chỉ là vấn đề của lịch sử và mặc dù "tại sao" trong tiêu đề này có thể được trả lời khá chắc chắn.
Caleb

Câu trả lời:


7

(thay vào đó, đăng bài dưới dạng wiki cộng đồng, nhờ những đóng góp trong các bình luận)

Nó được đề cập trong cuốn sách Từ Bash đến Z Shell (Chương 8, Trang 186, " Tạo số với dấu ngoặc ") rằng cú pháp này được mượn từ Perl .

Ngoài ra, cũng có ý kiến ​​cho rằng Pascal có ..ký hiệu phạm vi có niên đại từ năm 1970 (nhấn mạnh của tôi) (" Ngôn ngữ lập trình Pascal ", Phần 6.1.2, Trang 17 của PDF được liên kết).

Để kết luận, ngay cả liên kết Wikipedia từ câu hỏi đã nêu một số ví dụ ..được sử dụng. Các giả định rằng một dấu chấm lửng được xác định chặt chẽ như là một chuỗi ba chấm, vì nó là như một dấu chấm câu , không giữ đúng ở đây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.