Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2012 22:50:16

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

цикл for

py.user.next
элемент сравнивается с самим собой
Это костылик, можно сделать так, чтобы в цикле итерировались элементы, начиная с первого. Зато не нужен доступ по индексу. Можно, конечно, написать так, но будет лишнее копирование массива.
prev = array[0]
for i in array[1:]:
    if prev > i:
        #...
    prev = i

fata1ex
FishHook, решение красивое, но слишком сложное :)
Привыкнув к ФП - вполне логично, только не очень эффективное.



Офлайн

#2 Июнь 3, 2012 23:31:01

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

цикл for

asilyator
Привыкнув к ФП - вполне логично, только не очень эффективное.
ФП - это функциональное программирование? zip? И после таких фраз вы всерьёз придираетесь к строению модуля re и языка вцелом?



Офлайн

#3 Июнь 3, 2012 23:47:33

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

цикл for

Ну да, zip - это фп, а что? И при чем тут регекспы?



Офлайн

#4 Июнь 3, 2012 23:53:04

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

цикл for

Видимо, я не понимаю чего-то. Объясните каким местом zip являет собой пример функционального подхода?
Вы про это что ли:

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> zip(a, b)
[(1, 4), (2, 5), (3, 6)]
>>> map(None, a, b)
[(1, 4), (2, 5), (3, 6)]
?



Отредактировано fata1ex (Июнь 3, 2012 23:53:45)

Офлайн

#5 Июнь 4, 2012 00:50:37

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

цикл for

Ну таким же, как и map, reduce, filter.



Офлайн

#6 Июнь 4, 2012 00:59:22

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

цикл for

Ну и каша же у вас в голове. Почитайте SICP (старый, со Scheme), хотя бы первые несколько глав. Или хотя бы это.



Отредактировано fata1ex (Июнь 4, 2012 01:12:29)

Офлайн

#7 Июнь 4, 2012 02:18:25

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

цикл for

fatalex, я “это” уже читал. Или обясни, где же у меня каша, или хватит воду баламутить.



Офлайн

#8 Июнь 4, 2012 02:44:41

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

цикл for

Мда. Откуда столько самомнения и уверенности, что вы умнее всех?

>>> def myzip(a, b):
...     result = []
...     for idx in xrange(min(len(a), len(b))):
...         result.append((a[idx], b[idx]))
...     return result
...
>>> myzip([1,2,3], [4,5,6])
[(1, 4), (2, 5), (3, 6)]
У вас нет даже базовых знаний, что почему-то компенсируется гонором . Ужасно неприятно общаться с такими людьми.

И я, наверно, даже не удивлюсь, если вы, написав что-нибудь в этом роде, останетесь при своём мнении
>>> myzip = lambda *args: [ tuple(arg[idx] for arg in args) for idx in xrange(min([len(arg) for arg in args] or (0,))) ]



Отредактировано fata1ex (Июнь 4, 2012 03:06:04)

Офлайн

#9 Июнь 4, 2012 05:26:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

цикл for

asilyator
Это костылик, можно сделать так, чтобы в цикле итерировались элементы, начиная с первого. Зато не нужен доступ по индексу. Можно, конечно, написать так, но будет лишнее копирование массива.
вот именно, что нужно создавать копию всего массива, либо вхолостую проверять первый элемент
причём эта холостая проверка может послужить источником ошибки
например, при замене знака на >=



Отредактировано py.user.next (Июнь 4, 2012 05:26:52)

Офлайн

#10 Июнь 13, 2012 09:26:24

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

цикл for

fata1ex
У вас нет даже базовых знаний, что почему-то компенсируется гонором . Ужасно неприятно общаться с такими людьми.
Ужасно приятно общаться со всякими снобами, которые при малейшем непонимании пытаются обосрать и обозвать нубом.
Я так и не пойму, что ты мне обьяснить-то пытаешься? Что zip не относится к ФП? ЧТО? А? Мычание с наездами на двух страницах.

py.user.next
вот именно, что нужно создавать копию всего массива, либо вхолостую проверять первый элемент
причём эта холостая проверка может послужить источником ошибки
например, при замене знака на >=
Можно и отмотать первый элемент. Зато в моем варианте не требуется индексируемость data.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version