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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.