เหตุใดช่วงการขยายรั้งใช้จุดสองจุดแทนที่จะเป็นสามจุด (จุดไข่ปลา)


10

ในที่สุดผมก็เข้าใจ / ค้นพบว่าทำไมฉันไม่เคยมีการใช้bash's (และยังzsh' s) ช่วงการขยายตัวรั้งถูกต้อง: ไวยากรณ์คือ{1..10}แทนสิ่งที่ผมถือว่าจะเป็นจุดไข่ปลา{1...10}คือ

ฉันขอทราบได้ไหมว่าเพราะเหตุใดจึงเลือกสองจุดผ่านสามจุด การใช้จุดไข่ปลาในการเขียนโปรแกรมคอมพิวเตอร์เป็นเรื่องปกติและเข้าใจดีตามลิงค์ (Wikipedia) ซึ่งเป็นสาเหตุที่ทำให้ความอยากรู้อยากเห็นของฉันป่องๆ


3
เห็นได้ชัดว่ามันมีต้นกำเนิดในPerl ...
jasonwryan

3
การใช้n1..n2ในการเขียนโปรแกรมเพื่อแสดงช่วงจากn1ถึงn2 ถือกำเนิด Perl ค่อนข้างน้อย เห็นนี้คู่มือผู้ใช้ปาสกาลจากปี 1970 ส่วน 6.1.2 ในหน้า 17
Adaephon

1
เฮ้แสดงความคิดเห็นอย่าลังเลที่จะเปลี่ยนความคิดเห็นของคุณเป็นคำตอบ ... ? :)
hjk

ฉันมีความทรงจำที่คลุมเครือว่าบางภาษาใช้แม้แต่..กับ...จุดรวมที่ถูกต้องหรือไม่ แต่ฉันอาจผิด (Ruby หรือไม่นั่นคือ Ruby?)
Ulrich Schwarz

3
@slm ฉันจะต้องไม่เห็นด้วยกับเหตุผลที่นี่ คำถามในประวัติศาสตร์เกี่ยวกับสิ่งที่เกิดขึ้นไม่ใช่ความเห็น ความคิดเห็นได้บอกใบ้แล้วคำตอบนั้นเป็นเพียงเรื่องของประวัติศาสตร์และแม้จะมี "ทำไม" ในชื่อเรื่องนี้สามารถตอบได้ค่อนข้างแน่นหนา
Caleb

คำตอบ:


7

(โพสต์เป็นวิกิชุมชนแทนขอบคุณผลงานในความคิดเห็น)

มันถูกกล่าวถึงในหนังสือเล่มนี้จากทุบตีถึง Z เชลล์ (บทที่ 8, หน้า 186 " เบอร์ฝ่ายผลิตกับการจัดฟัน ") ว่ารูปแบบนี้จะถูกยืมมาจากPerl

นอกจากนี้ยังแนะนำว่า Pascal มี..ช่วงสัญกรณ์ย้อนหลังกลับไปจนถึงปี 1970 (ภาษาเหมืองเน้น) (" The Programming Language Pascal ", ส่วน 6.1.2, หน้า 17 ของ PDF ที่เชื่อมโยง)

โดยสรุปแม้แต่ลิงค์ Wikipediaจากคำถามยังระบุตัวอย่างบางส่วนที่..ใช้ การสันนิษฐานว่าจุดไข่ปลานั้นถูกกำหนดอย่างเคร่งครัดเป็นลำดับของจุดสามจุดเนื่องจากเป็นเครื่องหมายวรรคตอนไม่ถือเป็นจริงที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.