Чому діапазон розширення дужок використовує дві крапки замість трьох (еліпсис)?


10

Нарешті я зрозумів / виявив, чому я ніколи не отримував належного використання діапазону розширень дужки bash's (а також zsh' s): синтаксис {1..10}замість того, що я вважав еліпсісом , тобто {1...10}.

Чи можу я знати, чому було обрано дві крапки над трьома крапками? Використання еліпсису в комп'ютерному програмуванні є звичайним і добре зрозумілим, як вказує посилання (Вікіпедія), тому це викликало мою цікавість.


3
По- видимому , вона виникла в Perl ...
jasonwryan

3
Використання n1..n2в програмуванні для позначення діапазону від n1 до n2 передує Perl зовсім небагато. Дивіться цей посібник користувача Pascal від 1970 року, розділ 6.1.2 на сторінці 17 .
Adaephon

1
Ей, коментатори, сміливо перетворюйте свої коментарі на відповіді ...? :)
hjk

Я маю неясне спогад про те, що деякі мови зараз навіть використовують ..проти ...включення правильної кінцевої точки чи ні, але я можу помилятися. (Рубі? Це був Рубі?)
Ульріх Шварц

3
@slm Мені доведеться не погодитись із близької причини тут. Питання історії про те, як щось сталося, насправді не ґрунтуються на думках. Коментарі вже натякнули, що відповідь - це лише питання історії, і незважаючи на "чому" у назві, на це можна відповісти досить твердо.
Калеб

Відповіді:


7

(замість публікації як вікі спільноти, завдяки внеску в коментарях)

У книзі « Від Баша до Z Шелла» (Глава 8, стор. 186, « Утворення чисел за допомогою дужок ») згадується, що цей синтаксис запозичений у Perl .

Крім того, також передбачається, що Паскаль позначив ..діапазон ще в 1970 році (моє наголос) (" Паскаль мови програмування ", розділ 6.1.2, сторінка 17 пов'язаного PDF).

На закінчення, навіть посилання на Вікіпедію із запитання вказала кілька прикладів, де ..використовується. Припущення , що три крапки строго визначаються як послідовність з трьох точок, так як це як знак пунктуації , не має місця тут.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.