Re[22]: Сильные стороны функционального программирования
От: Quintanar Россия  
Дата: 05.09.04 21:00
Оценка: 8 (1) :)
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Quintanar, Вы писали:


Q>>Во всех этих 3-х строках кода неявно подразумевается ленивость вычислений. В реальности ни списки не будут бесконечно большими, ни filter не будет обрабатывать весь список и sieve тоже.

WH>А теперь давай сравним производительность с этим
WH>Re[2]: Решение в лоб мы решето Эратосфена
Автор: WolfHound
Дата: 23.06.04

WH>
WH>Вот результаты
WH>Re[3]: Решение в лоб мы решето Эратосфена
Автор: WolfHound
Дата: 24.06.04

WH>ЗЫ Зы я знаю что сравнение не корректоно ибо у тебя алгоритм "в лоб"
WH>ЗЗЫ А теперь попробуй на ФЯ написать решето эратосфена и так чтобы памяти жрало не больше чем моя реализация

На интерпретаторе (!) ghci под Windows на моей не самой быстрой машине первые 5000 (до 48619) чисел вычислились за 40 секунд, что примерно в 2 раза быстрее, чем на твоей программе . Знаю, знаю. Твоя программа сразу знала верхний предел и поэтому вычеркивала числа сразу до него . Но что же делать, я то имел ввиду ленивые вычисления, и моя программа могла бы быть написана более эффективно, если бы был задан верхний предел. Т.е. задачи решаются разные. Для сравнения нужна программа, которая заранее не знает сколько от нее потребуют простых чисел.
Кстати, OCaml, думаю, вообще не проиграл бы в производительности, поскольку на него твою программу можно перенести 1 в 1.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.