Re[25]: Oberon???????????????????????????????????
От: eugals Россия  
Дата: 16.11.04 09:21
Оценка:
Здравствуйте, faulx, Вы писали:

F>Здравствуйте, faulx, Вы писали:


F>>Здравствуйте, eugals, Вы писали:


E>>>Здравствуйте, faulx, Вы писали:


F>>>>Думаю, подстроку с 3 по 5 элемент. Нет?

E>>>
>>>>>> "012345678"[3:5]
E>>>'34'
E>>>


F>>То есть индексация начинается с 0? В данном случае это не принципиально (хотя, кстати, это может создать трудность при обучении). В x.substring(3,5) тоже неясно, откуда начинается индексация.


F>Не увидел сразу, что дело не только в начале индексации, а еще и в том, что 5 указывает на позицию после желаемого последнего символа. Понятно, сделано как в STL. Тоже при обучении может возникнуть трудность.

Да.
Впрочем, при обучении это легко усваивается, если человеку сначала показать такую конструкцию:

>>> x[:5]
Здесь все поймут, что вернется первые пять элементов последовательности.

Потом можно показать такую:
>>> x[3:]
Здесь будет получена строка, исключая первые три элемента.

Ну, а потом уже очевидное обобщение:
>>> x[3:5]

Кстати, немного рекламы.
В этой конструкции (да и вообще в доступе к элементам последовательностей) в питоне допускаются отрицательные индексы:
>>> x = "012345678"
>>> x[-2:]  # два последних элемента
'78'
>>> x[:-2]  # все элементы, исключая два последних
'0123456'
>>> x[:len(x)-2] # демострация простоты логики отображения отрицательных индексов в обычные.
'0123456'
... << RSDN@Home 1.1.4 beta 3 rev. 215>>
Re[22]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.11.04 14:58
Оценка:
Здравствуйте, faulx, Вы писали:

VD>>Нет.


F>Не убедил.


В чем? Это факт. В нем убеждать глупо. Скачай питон и проверь.

F> Всплывающая подсказка — не свойство языка.


От части свойство. Где ты видел подсказки на встроенные операторы? К тому же тут рассматриваются два конкретных случая. Так есть по факту. И думать, что там гипотетически возможно просто бессмысленно.

F> Иначе можно сказать, например, что язык X более понятен, чем Y, потому что у меня есть знакомый специалист по X, который мне все объяснит.


Очень разумно. Только это убдет частный случай. А вот высказывание "Шарп более прост в освоении нежели Оберон так как по Шарпу есть огромное комьюнити." как раз очень даже верно.

F> Давай поставим языки в равные условия: пусть тексты программ на них напечатаны на бумаге без всяких подсказок, раскраски синтаксиса и т.п.


Да. Давай доведем все до состояния сферического коня в вакуме и начнем утверждать все что захотим. Вот только зачем? Есть реальная сисуация. От абстрактных размышления она не изменится. По факту для методов Шарпа, Явы, ВБ подсказки есть. А для Питона нет. И вряд ли когда появятся подсказки для встроенных операторов. Так что понимать их совершенно невозможно. Их можно только заучивать.

F>Я не говорил про написание (тем более в "средах"), а только про чтение с листа.


И где же ты читаешь код с листа? Даже в Питоне командная строка — это почти IDE.

F>А мне он показался понятнее.


Поэтому ты не учел, что цифры означают индексы.

F> Следовательно, существуют люди, которым это понятнее. Следовательно, нельзя говорить, что запись x[3:5] менее интуитивно понятна для всех. Следовательно, интуитивная понятность — субъективное понятие. Что и требовалось доказать.


Я вообще не понимаю как можнов ести речь о интуитивной понятности частного синтаксиса. Тут можно вести речь о легкости изучения. И тут явно методы с подсказками имеют разкое приемущество.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Oberon???????????????????????????????????
От: _FRED_ Россия
Дата: 16.11.04 15:08
Оценка:
Здравствуйте, eugals, Вы писали:

E>Впрочем, при обучении это легко усваивается, если человеку сначала показать такую конструкцию:


E>
>>>> x[:5]
E>
Здесь все поймут, что вернется первые пять элементов последовательности.


E>Потом можно показать такую:

E>
>>>> x[3:]
E>
Здесь будет получена строка, исключая первые три элемента.


E>Ну, а потом уже очевидное обобщение:

E>
>>>> x[3:5]
E>

E>Кстати, немного рекламы.
E>В этой конструкции (да и вообще в доступе к элементам последовательностей) в питоне допускаются отрицательные индексы:
E>
>>>> x = "012345678"
>>>> x[-2:]  # два последних элемента
E>'78'
>>>> x[:-2]  # все элементы, исключая два последних
E>'0123456'
>>>> x[:len(x)-2] # демострация простоты логики отображения отрицательных индексов в обычные.
E>'0123456'
E>


Очень красиво и приятно! Но, видимо, пока не надоест отступать (и "переключать" при этом мозги) от более признанных форм.
Help will always be given at Hogwarts to those who ask for it.
Re[27]: Oberon???????????????????????????????????
От: eugals Россия  
Дата: 16.11.04 15:15
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Очень красиво и приятно! Но, видимо, пока не надоест отступать от более признанных форм.

Это для тебя проблема? Усвоить какую-то новую ("приятную" и "красивую") парадигму?
... << RSDN@Home 1.1.4 beta 3 rev. 215>>
Re[28]: Oberon???????????????????????????????????
От: _FRED_ Россия
Дата: 16.11.04 15:36
Оценка: :)
Здравствуйте, eugals, Вы писали:

_FR>>Очень красиво и приятно! Но, видимо, пока не надоест отступать от более признанных форм.

E>Это для тебя проблема? Усвоить какую-то новую ("приятную" и "красивую") парадигму?

На то она и есть парадигма, что бы сдаваться с трудом и со скрипом.
Кода много всякого смотреть приходится. Ладно там стили оформления, но специфические конструкции —
В своё время на басике очень радовался конструкциям с GoTo и Return — для не посвящённых
Private Sub SetRangeBorderColor(ByVal rg As Excel.Range, _
                                ByVal nIndex As Excel.XlBordersIndex, _
                                Optional ByVal Color As OLE_COLOR = -1)
  If Color <> -1 Then
    Dim b As Excel.Border
    Set b = rg.Borders(nIndex)
    GoSub Sub_SetBorder

    Set b = ReverseBorder(b, nIndex)
    If Not b Is Nothing Then
      GoSub Sub_SetBorder
    End If
  End If

  Exit Sub

Sub_SetBorder: 'Дабы не дублировать код и не заводить отдельных, 
    With b     'нигде не нужных функций, делаю так
      .Color = Color
      .Weight = xlThin
    End With
  Return
End Sub

Это ещё цветочки, так по прошествии трёх лет, когда в это заново нужно влезть и где-то поменять логику
Поэтому то, что не кажется естественным, делать, если хочешь чтоб всё было хорошо, не надо, каким бы привлекательным это не казалось.
Такой вот горький опыт.
Help will always be given at Hogwarts to those who ask for it.
Re[23]: Oberon???????????????????????????????????
От: faulx  
Дата: 17.11.04 06:58
Оценка: +3
F>> Всплывающая подсказка — не свойство языка.

VD>От части свойство. Где ты видел подсказки на встроенные операторы? К тому же тут рассматриваются два конкретных случая. Так есть по факту. И думать, что там гипотетически возможно просто бессмысленно.


Еще раз, медленно. Исходное сообщение звучало так:

VD> Все эти х[3:5] долеко не очевидны. Они требуют объяснения на пальцах. А вот x.substring(3, 5) как раз можно понять и без объяснения.


Факт заключается в следующем. Я увидел эту фразу, в которой приводились два примера синтаксиса. На для первого, ни для второго примера мой веб-браузер не выдал мне никакой всплывающей подсказки. Далее, в фразе приводилось общее утверждение, что синтаксис х[3:5] не очевиден, а x.substring(3, 5) — очевиден. Это утверждение вступило в противоречие с моим первым интуитивным представлением (совершенно объективным, поскольку меня не интересуют судьбы Питона, и этого синтаксиса Питона я тогда не знал). Этот факт показался мне, во-первых, достаточно забавным, чтобы обнародовать его, а во-вторых, опровергающим общность утверждения исходной фразы (поскольку имеется, по крайней мере, одно исключение).

VD>Очень разумно. Только это убдет частный случай. А вот высказывание "Шарп более прост в освоении нежели Оберон так как по Шарпу есть огромное комьюнити." как раз очень даже верно.




F>> Давай поставим языки в равные условия: пусть тексты программ на них напечатаны на бумаге без всяких подсказок, раскраски синтаксиса и т.п.


VD>Да. Давай доведем все до состояния сферического коня в вакуме и начнем утверждать все что захотим. Вот только зачем? Есть реальная сисуация. От абстрактных размышления она не изменится. По факту для методов Шарпа, Явы, ВБ подсказки есть. А для Питона нет. И вряд ли когда появятся подсказки для встроенных операторов. Так что понимать их совершенно невозможно. Их можно только заучивать.


В моем веб-браузере, гдя я увидел эти примеры, подсказок не было.

F>>Я не говорил про написание (тем более в "средах"), а только про чтение с листа.


VD>И где же ты читаешь код с листа?


В данном конкретном случае — в веб-браузере. Еще я читаю код с листа в



F>> Следовательно, существуют люди, которым это понятнее. Следовательно, нельзя говорить, что запись x[3:5] менее интуитивно понятна для всех. Следовательно, интуитивная понятность — субъективное понятие. Что и требовалось доказать.


VD>Я вообще не понимаю как можнов ести речь о интуитивной понятности частного синтаксиса.


А "интуитивная понятность" — это то же самое, что "очевидность" и "понятность без объяснения"? Тогда этот вопрос лучше задать самому себе, поскольку, повторяю, было сказано:

VD> Все эти х[3:5] долеко не очевидны. Они требуют объяснения на пальцах. А вот x.substring(3, 5) как раз можно понять и без объяснения.
Re[25]: Oberon???????????????????????????????????
От: Трурль  
Дата: 17.11.04 07:35
Оценка:
Здравствуйте, faulx, Вы писали:

F>Здравствуйте, faulx, Вы писали:


F>>Здравствуйте, eugals, Вы писали:


E>>>Здравствуйте, faulx, Вы писали:


F>>>>Думаю, подстроку с 3 по 5 элемент. Нет?

E>>>
>>>>>> "012345678"[3:5]
E>>>'34'
E>>>


F>>То есть индексация начинается с 0? В данном случае это не принципиально (хотя, кстати, это может создать трудность при обучении). В x.substring(3,5) тоже неясно, откуда начинается индексация.


F>Не увидел сразу, что дело не только в начале индексации, а еще и в том, что 5 указывает на позицию после желаемого последнего символа. Понятно, сделано как в STL. Тоже при обучении может возникнуть трудность. Что ж, признаю, что догадка моя отчасти была неверна, однако прошу заметить, что главное, а именно то, что имеется в виду операция выделения подстроки я все-таки угадал верно. Это уже немало, особенно для тех, кто не знает, что значит нерусское слово substring Также немаловажно, что в x.substring(3,5) неясностей с тем, что такое 3 и 5 по крайней мере не меньше, чем в x[3:5].


А вот в Алголе-68 x[3:5] означает именно "элементы с 3 по 5", причем не только для строк, но и для любых массивов.
Re[24]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.11.04 21:07
Оценка:
Здравствуйте, faulx, Вы писали:

F>>> Всплывающая подсказка — не свойство языка.


VD>>От части свойство. Где ты видел подсказки на встроенные операторы? К тому же тут рассматриваются два конкретных случая. Так есть по факту. И думать, что там гипотетически возможно просто бессмысленно.


F>Еще раз, медленно. Исходное сообщение звучало так:


VD>> Все эти х[3:5] долеко не очевидны. Они требуют объяснения на пальцах. А вот x.substring(3, 5) как раз можно понять и без объяснения.


F>Факт заключается в следующем. Я увидел эту фразу, в которой приводились два примера синтаксиса. На для первого, ни для второго примера мой веб-браузер не выдал мне никакой всплывающей подсказки. Далее, в фразе приводилось общее утверждение, что синтаксис х[3:5] не очевиден, а x.substring(3, 5) — очевиден.


А ты не выдирай цитаты из контекста:

Ничего мне не мешат. Я довольно адекватно могу оценивать достоинства если они очевидны. Все эти х[3:5] долеко не очевидны. Они требуют объяснения на пальцах. А вот x.substring(3, 5) как раз можно понять и без объяснения. Тому способствует то что все методы имеют единый принцип и описание видное в редакторе.


И все будет очевидно.

F> Это утверждение вступило в противоречие с моим первым интуитивным представлением (совершенно объективным, поскольку меня не интересуют судьбы Питона, и этого синтаксиса Питона я тогда не знал).


Забавно, объективность по-твоему определяется не наличием четкого доказательства, а просто твоей непредвзятостью.

F> Этот факт показался мне, во-первых, достаточно забавным, чтобы обнародовать его, а во-вторых, опровергающим общность утверждения исходной фразы (поскольку имеется, по крайней мере, одно исключение).


А цитату покоцал для чего? И объективность то в чем?

VD>>Очень разумно. Только это убдет частный случай. А вот высказывание "Шарп более прост в освоении нежели Оберон так как по Шарпу есть огромное комьюнити." как раз очень даже верно.


F>

Т.е. снача сам переключил нить обсуждения, а потом решил вернуться... Ну, ладно. ОК.

Если уж возвращаться, то:
1. Погляди на название темы (это к п. 3).
2. В чем частность случая?
3. Чем же [3:5] понятнее чем Substring(3, 5)? Только объективно, раз уж ты об обективности.

VD>>Да. Давай доведем все до состояния сферического коня в вакуме и начнем утверждать все что захотим. Вот только зачем? Есть реальная сисуация. От абстрактных размышления она не изменится. По факту для методов Шарпа, Явы, ВБ подсказки есть. А для Питона нет. И вряд ли когда появятся подсказки для встроенных операторов. Так что понимать их совершенно невозможно. Их можно только заучивать.


F>В моем веб-браузере, гдя я увидел эти примеры, подсказок не было.


А причем тут твой веб-броузер? Ты на нем собрался программировать? Или ты код из него собрался читать? Ты будешь использовать те самые IDE. И по факту ты за пару секунд разберелся, что означает Substring(3, 5), так как увидишь имена параметров и будешь вынужден искать в довольно не малом талмуде описание работы со списками.

F>>>Я не говорил про написание (тем более в "средах"), а только про чтение с листа.


VD>>И где же ты читаешь код с листа?


F>В данном конкретном случае — в веб-браузере. Еще я читаю код с листа в


Напомню, что ты ошибся в своем восприямтии. Так что ты ошибашся с листа. Ну, и см. выше.

F>

Ты действительно будешь изучать код в фаре или с распечатки? Или все же откроешь проект в IDE?
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[25]: Oberon???????????????????????????????????
От: faulx  
Дата: 18.11.04 06:46
Оценка:
Здравствуйте, VladD2, Вы писали:

F>>Факт заключается в следующем. Я увидел эту фразу, в которой приводились два примера синтаксиса. На для первого, ни для второго примера мой веб-браузер не выдал мне никакой всплывающей подсказки. Далее, в фразе приводилось общее утверждение, что синтаксис х[3:5] не очевиден, а x.substring(3, 5) — очевиден.


VD>А ты не выдирай цитаты из контекста:

VD>

Ничего мне не мешат. Я довольно адекватно могу оценивать достоинства если они очевидны. Все эти х[3:5] долеко не очевидны. Они требуют объяснения на пальцах. А вот x.substring(3, 5) как раз можно понять и без объяснения. Тому способствует то что все методы имеют единый принцип и описание видное в редакторе.


VD>И все будет очевидно.


Я не делал общих утверждений, а только делился своими личными впечатлениями от прочтения в веб-браузере двух приведенных примеров синтаксиса. Я ни с кем не спорил и никого ни в чем не пытался убедить. Не надо все принимать так близко к сердцу.

F>> Это утверждение вступило в противоречие с моим первым интуитивным представлением (совершенно объективным, поскольку меня не интересуют судьбы Питона, и этого синтаксиса Питона я тогда не знал).


VD>Забавно, объективность по-твоему определяется не наличием четкого доказательства, а просто твоей непредвзятостью.


Объективность впечатления — да. А я говорил только о своем впечатлении. Я ничего не доказывал и не приводил утверждений, требующих доказательства. Мое сообщение звучало так: прочтя текст А, я испытал ощущение Б. Что тут нужно доказывать, и в чем ты хочешь меня убедить? Что я этого ощущения не испытал?

F>> Этот факт показался мне, во-первых, достаточно забавным, чтобы обнародовать его, а во-вторых, опровергающим общность утверждения исходной фразы (поскольку имеется, по крайней мере, одно исключение).


VD>А цитату покоцал для чего?


Для того, что остальная часть цитаты не изменила моего первого впечатления от приведенных примеров синтаксиса.

VD>И объективность то в чем?


Объективность в том, что впервые видя синтаксис х[3:5], я понял, что речь идет о выделении подстроки.

VD>>>Очень разумно. Только это убдет частный случай. А вот высказывание "Шарп более прост в освоении нежели Оберон так как по Шарпу есть огромное комьюнити." как раз очень даже верно.


F>>

VD>Т.е. снача сам переключил нить обсуждения, а потом решил вернуться... Ну, ладно. ОК.


Ты меня ни с кем не путаещь? С чего и на что я переключал нить?

VD>Если уж возвращаться, то:

VD>1. Погляди на название темы (это к п. 3).

Я ничего не говорил об Обероне, поэтому воспротивился попыткам свести разговор к нему.

VD>2. В чем частность случая?


В том, что я не касался вопроса о понятности Питона и C# или о легкости обучения им, а говорил только о приведенных частных примерах синтаксиса.

VD>3. Чем же [3:5] понятнее чем Substring(3, 5)? Только объективно, раз уж ты об обективности.


Понятность в синтаксисе, на мой взгляд, проистекает от его похожести на какой-либо другой синтаксис, знакомый так давно, что кажется само собой разумеющимся. Скажем, синтаксис x + y более интуитивно понятен, чем (+ x y), x y +, Add(x, y) или x.add(y), потому что все мы учились в школе, и никакое отсутствие всплывающих подсказок не препятствует нам в написании арифметических выражений. Аналогично, синтаксис 3:5 вызывает, видимо, ассоциацию с выражениями вида "в 3-5 раз интуитивно понятнее" (в некоторых книгах вместо дефиса в таких случаях даже пишут специальный значок, который я не знаю как напечатать — помесь дефиса и двоеточия, что-то вроде -:-, только дефис сплошной). Впрочем, я не знаю, почему именно запись [3:5] показалась мне понятной, возможно, из-за каких-то виденных мною в других языках конструкций, которых я сейчас не могу вспомнить. Разумеется, другим людям эта запись ничего не будет напоминать, поэтому она для них не будет интуитивно понятной. Поэтому интуитивная понятность — субъективное понятие.


F>>В моем веб-браузере, гдя я увидел эти примеры, подсказок не было.


VD>А причем тут твой веб-броузер?


При том, что приведенные примеры я прочитал именно в нем.

F>>В данном конкретном случае — в веб-браузере. Еще я читаю код с листа в


VD>Напомню, что ты ошибся в своем восприямтии. Так что ты ошибашся с листа. Ну, и см. выше.


В чем я ошибся, в том, что x[3:5] — это подстрока? Но это действительно подстрока. А что означают конкретные значения 3 и 5 — это уже вторично, потому что, во-первых, как мне подсказали, например, в Алголе они действительно значили то, что я и подумал (следовательно, подобная мысль приходила не только мне в голову), а во-вторых, в Substring(3, 5) тоже непонятно, что означают 3 и 5 (только не надо про всплывающую подсказку).

F>>

VD>Ты действительно будешь изучать код в фаре или с распечатки? Или все же откроешь проект в IDE?


Во-первых, лично у меня на диване IDE нету. Во-вторых, остаются еще бумажные книги. В-третьих, мы тут вроде школьников собрались учить? Ну так они еще будут читать код с доски и перечитывать собственные конспекты.
Re[26]: Oberon???????????????????????????????????
От: Трурль  
Дата: 18.11.04 07:08
Оценка: +1
Здравствуйте, faulx, Вы писали:

F> Впрочем, я не знаю, почему именно запись [3:5] показалась мне понятной, возможно, из-за каких-то виденных мною в других языках конструкций, которых я сейчас не могу вспомнить. Разумеется, другим людям эта запись ничего не будет напоминать, поэтому она для них не будет интуитивно понятной. Поэтому интуитивная понятность — субъективное понятие.


Рискну предположить, что [3:5] напоминает [3,5] (отрезок на числовой прямой) и [3..5].
Re[27]: Oberon???????????????????????????????????
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.11.04 12:10
Оценка: +1
Здравствуйте, Трурль, Вы писали:

F>> Впрочем, я не знаю, почему именно запись [3:5] показалась мне понятной, возможно, из-за каких-то виденных мною в других языках конструкций, которых я сейчас не могу вспомнить. Разумеется, другим людям эта запись ничего не будет напоминать, поэтому она для них не будет интуитивно понятной. Поэтому интуитивная понятность — субъективное понятие.


Т>Рискну предположить, что [3:5] напоминает [3,5] (отрезок на числовой прямой) и [3..5].


Как мы вроде выяснили все таки [3..5).

P.S. Об этом как то никто не упомянул, но str.Substring(3, 5) означает подстроку с 3 символа 5 символов длиной, а не подстроку с 3 по 5 символ.
... << RSDN@Home 1.1.4 beta 3 rev. 232>>
AVK Blog
Re[23]: Обновление
От: SilverCloud Россия http://rodonist.wordpress.com
Дата: 18.11.04 15:11
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

ЗХ>>Набирать ключевые слова большими буквами противоестественно


СГ>ЭТО ВСЕГО ЛИШЬ ВОПРОС ПРИВЫЧКИ.


да, конечно. Но эта привычка откуда-то взялась? Или ты предлагаешь все книги и газеты тоже НА ТАКОЙ ВОТ СТИЛЬ ВЁРСТКИ перевести? В конце концов, читать (и писать) слева направо — это тоже привычка
Пельмени «Русские». ЧП Баркашов. silent
О динозаврах ж-)
От: SilverCloud Россия http://rodonist.wordpress.com
Дата: 19.11.04 16:50
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>к таковым (ископаемым) можно разве только Форт причислить


Ну, это смотря где. В промышленных контроллерах до сих пор жив.
Впрочем, эта область — отдельный разговор. Недавно имел опыт писания на SCL (это нечто БэйсикоПаскалеПодобное от Зименса для своих контроллеров), так это что-то. В официальной доке хвалятся, как удобно у них в редакторе Ctr+C, Ctr+V делать Но, знаешь, это всё равно более высокий уровень, чем Ассемлер!
<задумчиво-мечтательно>Эх, когда же в PLC CIL-ные сборки заливаться будут </задумчиво-мечтательно>
Пельмени «Русские». ЧП Баркашов. silent
Re[18]: Oberon???????????????????????????????????
От: Undying Россия  
Дата: 20.11.04 11:39
Оценка: -1
Здравствуйте, faulx, Вы писали:

F>Кстати, интересное наблюдение. О синтаксисе х[3:5] и x.substring(3, 5) я впервые узнал из этого сообщения, однако еще до того, как прочитал, что речь идет о подстроках, понял смысл выражения х[3:5], а когда дошел до x.substring(3, 5), сразу возник вопрос: а 5 — это последний символ или длина подстроки? (Ответа вопрос не требует)


[3:5] это специальная конструкция введенная в язык и даже будь она очевидна (а для меня это совершенно не так), ее все равно приходилось бы заучивать. Сразу же возникает вопрос: достаточно ли часто в программах используется операции модифицирующие строку, чтобы имело смысл добавление в язык специальной конструкции?

Лично я модифицирую строки далеко не каждый день и не вижу в такой конструкции никакого смысла.

F>Так что "очевидность" — вещь субъективная.


В данном случае объективная. Имея x.Substring(3, 5) я могу, во-первых, навестись мышой на название метода и получить подсказку типа:
string String.Substring(int startIndex, int length), во-вторых, поставить курсор на название метода и, нажав F1, получить полное описание метода.

Что мне нужно сделать, чтобы получить аналогичную информацию о x[3:5]?
... << RSDN@Home 1.1.2 stable >>
Re[19]: Oberon???????????????????????????????????
От: eugals Россия  
Дата: 20.11.04 14:10
Оценка:
Здравствуйте, Undying, Вы писали:

U>[3:5] это специальная конструкция введенная в язык и даже будь она очевидна (а для меня это совершенно не так), ее все равно приходилось бы заучивать. Сразу же возникает вопрос: достаточно ли часто в программах используется операции модифицирующие строку, чтобы имело смысл добавление в язык специальной конструкции?

Если говорить о питоне, эта конструкция используется не только для модификации строк.
Она применима ко всем объектам, которые поддерживают нужный ей интерфейс (спискам, кортежам и т.д.).

U>Лично я модифицирую строки далеко не каждый день и не вижу в такой конструкции никакого смысла.

Это не аргумент. Я вот модифицирую строки довольно часто и смысл вижу (особенно, учитывая сказанное выше).

F>>Так что "очевидность" — вещь субъективная.

+1

U>В данном случае объективная. Имея x.Substring(3, 5) я могу, во-первых, навестись мышой на название метода и получить подсказку типа:

U>string String.Substring(int startIndex, int length), во-вторых, поставить курсор на название метода и, нажав F1, получить полное описание метода.
U>Что мне нужно сделать, чтобы получить аналогичную информацию о x[3:5]?
1. К собственно языку этот вопрос не имеет никакого отношения. Всё зависит от IDE которой ты пользуешься. Или будешь утверждать, что распознать выражение "\[\d*:\*\]" сложнее, чем сначала найти "\w+", а потом поискать найденное слово в индексе хелпа?
2. Ты же не задаешь вопрос, что нужно нажать, чтобы узнать смысл вот такого выражения: "a? b: c"
... << RSDN@Home 1.1.4 beta 3 rev. 215>>
Re[20]: Oberon???????????????????????????????????
От: Undying Россия  
Дата: 20.11.04 18:43
Оценка:
Здравствуйте, eugals, Вы писали:

E>Если говорить о питоне, эта конструкция используется не только для модификации строк.

E>Она применима ко всем объектам, которые поддерживают нужный ей интерфейс (спискам, кортежам и т.д.).

Радует, что обобщили. Но получение куска массива подобным образом еще более экзотическая операция, чем работа со строкой.

U>>Лично я модифицирую строки далеко не каждый день и не вижу в такой конструкции никакого смысла.

E>Это не аргумент. Я вот модифицирую строки довольно часто и смысл вижу (особенно, учитывая сказанное выше).

Конечно, если ввести в язык (тот же шарп) дополнительно только эту конструкцию, то особого вреда не будет. Но если добавить другие операции с сомнительной (заметной только на узком круге задач) эффективностью, то получим монстра типа плюсов, на который смотреть-то страшно, не то что писать.

E>1. К собственно языку этот вопрос не имеет никакого отношения.


Имеет. Даже если используешь бумажный справочник, в случае Substring достаточно воспользоваться указателем к нему. В случае же х[3:5] нужно долго чесать репу, думая в какой же раздел поместила эту операцию фантазия автора.

E> Всё зависит от IDE которой ты пользуешься. Или будешь утверждать, что распознать выражение "\[\d*:\*\]" сложнее, чем сначала найти "\w+", а потом поискать найденное слово в индексе хелпа?


Сложнее. В случае x[3:5] уже нужно уметь распознавать контекст, т.е. наличие двоеточия. Питон, кстати, подсказывать умеет?

Кроме того многовато операций на [] возлагается. Скажем есть два варианта: Substring(int startIndex, int length) и Substring(int startIndex). Если использовать x[3:5], то реализовать второй вариант уже не получится, т.к. он будет конфликтовать с обращением к массиву по индексу.

E>2. Ты же не задаешь вопрос, что нужно нажать, чтобы узнать смысл вот такого выражения: "a? b: c"


Задаю. Весьма неинтуитивная конструкция, кстати говоря, которая требует обязательного предварительного заучивания.
... << RSDN@Home 1.1.2 stable >>
Re[21]: Oberon???????????????????????????????????
От: eugals Россия  
Дата: 20.11.04 20:34
Оценка: +1
Здравствуйте, Undying, Вы писали:

E>> Всё зависит от IDE которой ты пользуешься. Или будешь утверждать, что распознать выражение "\[\d*:\*\]" сложнее, чем сначала найти "[_\w][_\w\d]*", а потом поискать найденное слово в индексе хелпа?

U>Сложнее. В случае x[3:5] уже нужно уметь распознавать контекст, т.е. наличие двоеточия.
Ой, да ладно пугаться-то ...всё это легко решается на регулярных выражениях.

U> Питон, кстати, подсказывать умеет?

Питон — просто интерпретатор. он ничего подсказывать и не должен.
Точно так же как и C# сам по себе тоже ничего не подсказывает — этим занимается IDE, т.е. VS. Под питон есть несколько IDE, но умеет ли какая-нибудь из них показывать в данном контексте подсказку я не знаю. Не сильно удивлюсь, если нет.

U>Кроме того многовато операций на [] возлагается. Скажем есть два варианта: Substring(int startIndex, int length) и Substring(int startIndex). Если использовать x[3:5], то реализовать второй вариант уже не получится,

Получится
Автор: eugals
Дата: 16.11.04
. И второй вариант и третий и ещё кое-какие другие.

E>>2. Ты же не задаешь вопрос, что нужно нажать, чтобы узнать смысл вот такого выражения: "a? b: c"

U>Задаю. Весьма неинтуитивная конструкция, кстати говоря, которая требует обязательного предварительного заучивания.
И сколько требуется на заучивание? Две минуты? Три?
... << RSDN@Home 1.1.4 @@subversion >>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.