Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Python
Перезагрузить страницу Фишки как реализовать программу
Ответ
 
Опции темы Опции просмотра
  (#31 (permalink)) Старый
kost kost вне форума
Member
 
Сообщений: 1,081
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.10.2004
По умолчанию 09.01.2008, 15:13

Очаровательный Python: Изящество и неловкость Python. Часть 2:
http://www.ibm.com/developerworks/ru/libra...&S_CMP=GR01
Ответить с цитированием
  (#32 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 09.01.2008, 19:16

я вообще, что то не понимаю, зачем нужен ленивый список. тем более такой.
Это решение какой-то специфичной задачи. Причём решение неоригинальное.
Ответить с цитированием
  (#33 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 09.01.2008, 19:39

Ну, как зачем... кэшировать последовательность вычислений. Встретилось у тебя в программе впервые lazy_list[100] - он досчитал тебе элементы до сотого, встретилось потом lazy_list[200] - досчитал до двухсотого, а встретилось lazy_list[150] - ничего не стал считать, взял уже посчитанное значение.
Только в приведенной реализации этот список, кажется, не сможет обращаться к предыдущим элементам себя же, что ограничивает применимость. Или может?
Ответить с цитированием
  (#34 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 09.01.2008, 21:52

не помню точно, но у меня, кажется, что-то такое было проще и функциональнее. Без итераторов.
Ответить с цитированием
  (#35 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 07.02.2008, 06:13

Код:
>>> d = {'a': 1, 'b': 2}
>>> "b is %(b)s, a is %(a)s" % d
'b is 2, a is 1'
Ответить с цитированием
Ads.
  (#36 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 04.03.2008, 01:04

Цитата:
Всякие трюки с присваиванием:
http://nedbatchelder.com/blog/200701...0070110T070106
Код:
>>> (a,b,c) = (1,2,3)
>>> b
2
однако
Код:
>>> (a,a,a) = (1,2,3)
>>>a
3
Т.е. это не полноценный паттерн матчинг.
Ответить с цитированием
Ads
  (#37 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 04.03.2008, 06:30

Что-то я не понимаю, чего именно ты другого ожидал от (a,a,a) = (1,2,3)
Ответить с цитированием
  (#38 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 04.03.2008, 12:05

надеялся, что увижу исключение.
Ответить с цитированием
  (#39 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 20.10.2008, 07:17

Полезная подборка:
http://stackoverflow.com/questions/101268/...tures-of-python
Ответить с цитированием
  (#40 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 20.10.2008, 07:17

Полезная подборка:
http://stackoverflow.com/questions/101268/...tures-of-python
Ответить с цитированием
  (#41 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 31.01.2009, 01:50

Вычисление факториала на Питоне.
Код:
a = lambda f: lambda n: 1 if n==0 else n*f(n-1)
def Y(f):
    def g(k):
        return f(lambda a: (k(k))(a))
    return g(g)

fact = Y(a)

fact(100)
Ответить с цитированием
  (#42 (permalink)) Старый
Lisenok Lisenok вне форума
Member
 
Сообщений: 443
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.01.2007
По умолчанию 01.02.2009, 01:44

Цитата:
Вычисление факториала на Питоне.
<div class='codetop'>Код Python
<div class='codemain'>a = lambda f: lambda n: 1 if n==0 else n*f(n-1)
def Y(f):
def g(k):
return f(lambda a: (k(k))(a))
return g(g)

fact = Y(a)

fact(100)[/code][/quote]
Ого. Муть, но прикольная!
Ответить с цитированием
  (#43 (permalink)) Старый
gromozeka gromozeka вне форума
Флудер
 
Аватар для gromozeka
 
Сообщений: 3,170
Сказал(а) спасибо: 6
Поблагодарили 16 раз(а) в 15 сообщениях
Регистрация: 28.02.2005
Адрес: Израиль
По умолчанию 01.02.2009, 19:18

Весь прикол в том, что тут вроде как и нет рекурсии
Ответить с цитированием
  (#44 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 01.02.2009, 22:26

Ну да... Комбинатор неподвижной точки, вроде как, и вводится для того, что бы определить рекурсию.
А сам комбинатор я нарочно записал в самой запутанной из известных мне форм, хотя можно было и проще
Код:
def Y(f):
    return lambda x: f(Y(f))(x)
или так
Код:
def Y(f):
    return f( lambda x: Y(f)(x) )
Ответить с цитированием
  (#45 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 04.02.2009, 19:43

Хотя почему это нет рекурсии? Внутри комбинатора очень даже есть - он сам себя вызывает...
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно реализовать программу в паскале абс Bart2000 Pascal 0 03.04.2012 01:01
реализовать программу leshan Вопросы начинающих программистов 0 16.01.2012 23:21
Как реализовать идею в программу? =) Ильяя С/С++ 1 30.11.2011 11:51
Фишки связанные с видео Мборзик Видеокарты 4 05.09.2011 22:42
Требуется реализовать программу elena.serebr Delphi 1 17.05.2011 02:35
Реализовать программу – сниффер на С++ Валькирия Вопросы начинающих программистов 9 09.10.2008 05:36
Сумма ряда как реализовать программу hitter Assembler 1 20.03.2008 15:13
Примочки и фишки при работе с ПК. Max Общетематический 0 26.02.2008 13:32
Как написать программу и реализовать ее EcZe C++ Builder 5 07.01.2007 14:41
фишки Sith Офтопик 11 27.12.2006 19:54
3d в Pascal как реализовать программу fazzz Pascal 2 11.06.2005 19:46
Как реализовать программу управления многопроцессоным комплексом gryzli Вопросы начинающих программистов 0 06.01.2005 02:59



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов