LINUX.ORG.RU

Гвидо ван Россум рассказывает об истории Python

 ,


0

0
Гвидо ван Россум объявил в своем блоге о начале публикации накопившихся у него материалов о создании и эволюции языка Python.

>>> Подробности

anonymous

Проверено: JB ()
Ответ на: комментарий от anonymous
>1х это циклы, циклы по итераторам.

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

А во-вторых они в отличие от циклов не интерпретируются, а выполняются с ипользованием сишных библиотек.

EvilBlueBeaver ★
()
Ответ на: комментарий от anonymous
Ну ты я смотрю вообще развит не по годам, смотришь на всех с высока :) Не хочу угадывать, расскажи нам, какие методологические подходы ты применяешь, по сравнению с которыми декораторы и циклы - костыли.

Подними людям настроение ;)

anonymous
()
Ответ на: комментарий от EvilBlueBeaver
> это элементы декларативного, а не императивного описания.

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

> А во-вторых они в отличие от циклов не интерпретируются, а выполняются с ипользованием сишных библиотек.

Превед. Так или иначе все выражения pure python сначала интерпретируются, а потом выполняются с использованием сишных библиотек.

anonymous
()
Ответ на: комментарий от EvilBlueBeaver
> циклы не использую)) и пишу на питоне)) лист копрехеншн и мап)) что я делаю не так?

> и фильтр с редьюсом в кучу

> что я делаю не так?

Выпендриваешься бессмысленно.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous
>С этим согласен. Но природу это не меняет - циклы все же есть? Есть. А прямоходящий анонимус говорит, что не использует их *вообще*.

Хвостовая рекурсия тоже в циклы вырождается в большинстве языков(камень в огород питона), но это же не циклы

>Превед. Так или иначе все выражения pure python сначала интерпретируются, а потом выполняются с использованием сишных библиотек.

Ну это и так ясно, что сначала надо проинтерпретировать. Но работают лист компрехеншн все же побыстрее аналогичного цикла.

EvilBlueBeaver ★
()
Ответ на: комментарий от EvilBlueBeaver
Да понятно, что быстрее. Но вопрос-то не в этом. Всякие редьюс, мэп, фильтр и прочая и прочая - это просто элементы функциональщины в Python. Сам факт использования циклов ты ж не отрицаешь?

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

anonymous
()
Ответ на: комментарий от anonymous
>Да понятно, что быстрее. Но вопрос-то не в этом. Всякие редьюс, мэп, фильтр и прочая и прочая - это просто элементы функциональщины в Python. Сам факт использования циклов ты ж не отрицаешь?

>Анонимус-пыхпыхкодер, наверное, пишет только хэллоу-ворлд приложения, или модулечки для друпала в лучшем случае, иначе он бы все-таки понял, что цикл (наряду с ветвлением) - такая конструкция языка, без которой обходиться невозможно.

Циклы нужны там, где они нужны. ну и соответственно наоборот. Но анонимус видимо предпочитает использовать джампы и гоуту))

EvilBlueBeaver ★
()
Ответ на: комментарий от anonymous
> иначе он бы все-таки понял, что цикл (наряду с ветвлением) - такая конструкция языка, без которой обходиться невозможно.

И php. Как же можно обходиться без глобального и надёжного php.

anonymous
()
Ответ на: комментарий от EvilBlueBeaver
>> Выпендриваешься бессмысленно.

> я промолчу

Жаль. Я бы с удовольствием посмотрел, как ты выполнишь для всех элементов списка действие, которое требует нескольких строк кода.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous
>И php. Как же можно обходиться без глобального и надёжного php.

Ты как препод моих знакомых, который на лекции рассказывает, что пхп лучше гтк.

EvilBlueBeaver ★
()
Ответ на: комментарий от tailgunner
>Жаль. Я бы с удовольствием посмотрел, как ты выполнишь для всех элементов списка действие, которое требует нескольких строк кода.

В питоне я опишу функцию обработки одного элемента. В любом случае декомпозиция не повредит.

Говорят, что в хаскеле можно лямбды многострочные, там проще, но не факт, что понятнее

EvilBlueBeaver ★
()
Ответ на: комментарий от EvilBlueBeaver
Использовать в Python функциональный подход везде и всегда на мой взгляд является преждевременной оптимизацией. Во многих случаях такой код выглядит компактней - там это более чем уместно. Но совать его всюду просто потому, что он на пару микросекунд быстрее, имхо, не стоит. К тому же по oneliner'ам неудобно ходить отладчиком.
anonymous
()
Ответ на: комментарий от anonymous
>> Циклы нужны там, где они нужны.

>Да нигде оне не нужны. Частный случай рекурсии.

Ну стек вообще-то не резиновый.

anonymous
()
Ответ на: комментарий от anonymous
>Ну ваших знакомых. Тоже уверяет, что без них обходиться невозможно?

Это я хз что он им там рассказывает. Он у них не программирование ведет, а что-то типа человеко-машинного взаимодействия, просто пхп ему очень нравится.

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

EvilBlueBeaver ★
()
Ответ на: комментарий от anonymous
> > > Циклы нужны там, где они нужны.

> >Да нигде оне не нужны. Частный случай рекурсии.

> Ну стек вообще-то не резиновый.

В этом частном случае стек не используется совсем.

anonymous
()
Ответ на: комментарий от anonymous
> Да, а что, c00l programmerz doesn't need such useless shit as отладчик? ;)

Не. Оне без него жить не могуть просто. Как же без отладчика-то?

anonymous
()
Ответ на: комментарий от anonymous
> > > > Циклы нужны там, где они нужны.

> > >Да нигде оне не нужны. Частный случай рекурсии.

> > Ну стек вообще-то не резиновый.

>В этом частном случае стек не используется совсем.

Ну tail-recursion тоже. правда не везде.

EvilBlueBeaver ★
()
Ответ на: комментарий от anonymous
>> Циклы нужны там, где они нужны.

>Да нигде оне не нужны. Частный случай рекурсии.

А вообще если подумать, чем рекурсия лучше? Быстрее? Наврядли. Понятней? Тем более нет. Проще в отладке, экономичней по памяти? Снова нет. Так зачем тогда мух с котлетами в одну тарелку?

anonymous
()
Ответ на: комментарий от EvilBlueBeaver
>> Я бы с удовольствием посмотрел, как ты выполнишь для всех элементов списка действие, которое требует нескольких строк кода.

> В питоне я опишу функцию обработки одного элемента.

Ага, я это и имел в виду.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous
>А вообще если подумать, чем рекурсия лучше? Быстрее? Наврядли. Понятней? Тем более нет. Проще в отладке, экономичней по памяти? Снова нет. Так зачем тогда мух с котлетами в одну тарелку?

Понятнее -Да(хотя кому как). Остальное зависит от компилятора(интерпретатора) и пряморукости того, кто писал код.

EvilBlueBeaver ★
()
Ответ на: комментарий от tailgunner
>>> Я бы с удовольствием посмотрел, как ты выполнишь для всех элементов списка действие, которое требует нескольких строк кода.

>> В питоне я опишу функцию обработки одного элемента.

>Ага, я это и имел в виду.

А чем это плохо?

EvilBlueBeaver ★
()
Ответ на: комментарий от anonymous
Так прикольней и можно пугать людей.
anonymous
()
Ответ на: комментарий от EvilBlueBeaver
> >Ооо, Гвидо собрался закапывать пистон. Довольно правильное решение ^^"

> Чем же питон вам так не угодил?

Про отступы в этой ветке говорили уже?

anonymous
()
Ответ на: комментарий от EvilBlueBeaver
>>> В питоне я опишу функцию обработки одного элемента.

>> Ага, я это и имел в виду.

> А чем это плохо?

Тем, что ты пишешь функцию там, где она не нужна (бритва Оккама, ага?). И тем, что получаешь лишний вызов функции в рантайме.

Да, и если ты считаешь, что используя map/reduce ты не пользуешься циклами - ты, мягко говоря, не всё знаешь.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous
> > >Ооо, Гвидо собрался закапывать пистон. Довольно правильное решение ^^"

> > Чем же питон вам так не угодил?

> Про отступы в этой ветке говорили уже?

В этой ветке уже говорили. и После того, как попросили привести другой аргумент - сразу замолкли.

EvilBlueBeaver ★
()
Ответ на: комментарий от tailgunner
> Да, и если ты считаешь, что используя map/reduce ты не пользуешься циклами - ты, мягко говоря, не всё знаешь.

Ага. А если ты считаешь, что используя циклы ты не пользуешься goto - ты, мягко говоря, не всё знаешь.

anonymous
()
Ответ на: комментарий от tailgunner
>>>> В питоне я опишу функцию обработки одного элемента.

>>> Ага, я это и имел в виду.

>> А чем это плохо?

>Тем, что ты пишешь функцию там, где она не нужна (бритва Оккама, ага?). И тем, что получаешь лишний вызов функции в рантайме.

Давай байты еще поштучно посчитаем. Лишний вызов, зато код структурированнее. Бедные лисперы, сколько же у них вызовов функций в рантайме лишних. Кстати а подскажи как вызвать функцию не в рантайме.

>Да, и если ты считаешь, что используя map/reduce ты не пользуешься циклами - ты, мягко говоря, не всё знаешь.

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

EvilBlueBeaver ★
()
Ответ на: комментарий от anonymous
> Да, и если ты считаешь, что используя map/reduce ты не пользуешься циклами - ты, мягко говоря, не всё знаешь.

>Ага. А если ты считаешь, что используя циклы ты не пользуешься goto - ты, мягко говоря, не всё знаешь.

Ты меня опередил))

EvilBlueBeaver ★
()
Ответ на: комментарий от anonymous
> > и После того, как попросили привести другой аргумент

>А этот чем не угодил?

Тем что это сугубо индивидуальное. Мне например отступы нравятся, а тебе нет.

EvilBlueBeaver ★
()
Ответ на: комментарий от EvilBlueBeaver
Я функциями пользуюсь, а то что происходит на более низком уровне меня не волнует. В конце концов, продолжая твою логику, никто циклами не пользуется, ибо на ассемблере это все равно джамп на метки. но не ты же эти джампы пишешь.

Читать вот так)) сорри

EvilBlueBeaver ★
()
Ответ на: комментарий от EvilBlueBeaver
Провел исследование небольшое на тему рекурсии и производительности.

>>> def f_recursive(n):
...     if n <= 2: return n
...     return n * f_recursive(n - 1)
... 
>>> from timeit import timeit
>>> timeit('f_recursive(10)', setup='from __main__ import f_recursive')
3.3703920841217041

>>> def f_loop(n):
...     ret = 1
...     while n > 1: ret *= n; n -= 1
...     return ret
...
>>> timeit('f_loop(10)', setup='from __main__ import f_loop')
2.4275178909301758

>>> timeit('f_functional(10)', setup='from operator import mul; f_functional = lambda n: reduce(mul, xrange(1, n + 1))')
2.0773041248321533

>>> timeit('factorial(10)', setup='from math import factorial')
0.52627015113830566

Sapienti sat.
anonymous
()
Ответ на: комментарий от EvilBlueBeaver
> Тем что это сугубо индивидуальное. Мне например отступы нравятся, а тебе нет.

Вот-вот. Отступы провоцируют рознь!

anonymous
()
Ответ на: комментарий от anonymous
> > Тем что это сугубо индивидуальное. Мне например отступы нравятся, а тебе нет.

> Вот-вот. Отступы провоцируют рознь!

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

EvilBlueBeaver ★
()
Ответ на: комментарий от anonymous
>> Sapienti sat.

>Угу. Вот уже второй аргумент за похороны питона.

Где ты тут аргумент за похороны узрел? о.О Ты вообще код-то понял?

anonymous
()
Ответ на: комментарий от EvilBlueBeaver
> Надо жить в таком обществе, чтобы выбора не было и как тебе надо делать говорили сверху. Скажут с отступами - будешь с отступами, скажут без -будешь без)))

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

anonymous
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.