Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra)
@ 2010-07-30 20:06:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Ленивое:
Вопрос на понимание subj: а оцените сложность этой программы по времени и памяти, как О(100000):

app [] b = b
app (a:b) c = a:app b c

rev [] = []
rev (a:b) = rev b `app` [a]

main = print (take 10 (rev  [0..100000]))


(если что - (car:cdr) - это тоже самое, что в лиспе (cons car cdr))

Комменты скринятся.


(Добавить комментарий)


[info]tristes_tigres
2010-07-30 22:27 (ссылка)
Зависит от мозговитости компилятора, я думаю.

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2010-07-30 22:35 (ссылка)
Там все вполне четко (то есть умный компилятор наверное может улучшить, но оценка сверху тут вполне однозначная).

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]tristes_tigres
2010-07-31 22:30 (ссылка)
Разве умный компилятор не может избавится от функции app ?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2010-07-31 22:39 (ссылка)
А зачем?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]tristes_tigres
2010-07-31 22:41 (ссылка)
А зачем пример не выглядит как

main = print (take 10 (reverse [0..100000]))

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2010-07-31 22:42 (ссылка)
А в чем ожидаемое счастье от этой замены?

(Ответить) (Уровень выше)


[info]max630.livejournal.com
2010-07-31 00:42 (ссылка)
не хватает определения take для уверенности, но наверное все-таки не взлетит. То есть O(N) и то и другое.

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2010-07-31 22:41 (ссылка)
Ну да - но не O(n2), как в strict варианте (С умрет).

(Ответить) (Уровень выше)

гы
[info]max630.livejournal.com
2010-07-31 05:12 (ссылка)
ghc-6.12.1 и hugs без оптимизаций вываливаются по stack overflow :)

(Ответить) (Ветвь дискуссии)

Re: гы
[info]kouzdra
2010-07-31 05:18 (ссылка)
У мене он всего лишь советует задать параметр -K (а вот С от аналога этого примера реально плохеет).

(Ответить) (Уровень выше)