|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Pavel P 2:5020/400 10 Oct 2002 13:52:14 To : Andrew Ezhguroff Subject : Re: Как закодировать? -------------------------------------------------------------------------------- "Andrew Ezhguroff" <eandr@com2com.ru> wrote in message news:ao3ddj$15m$1@host.talk.ru... > Привет! "Pavel P" <vprin@indiainfo.com> сообщил(а): > > PP> Еще для организации циклов. А подавляющее большиство задач > PP> к этому и сводиться: циклы, преобразования, обработка списков > PP> и деревьев. > > Понятно, что циклы и рекурсия взаимозаменяемы. Hо я говорю о другом - о том, > что некоторые алгоритмы "прозрачнее" в рекурсивном виде, а некоторые - в > циклическом. > > Hо при этом "прозрачность" не гарантирует эффективность: Согласен. Hо! Для построения прототипа программы я могу писать все прозрачно. Потом если скорость чего либо меня не устраивает, я могу переписать нужные мне куски. Они станут менее прозрачными, но более эффективными. Hо все переписывать мне не придется. В этом я полностью убедился при реализации распаковывателя GIF файлов. То есть... о чем это я ... :) Делается прозрачный прототип проекта, а потом отшлифовывается его медленная часть ( как и в любом другом языке ). > Классический пример (не уверен, что правильно разобрался с синтаксисом > языка) прозрачности при абсолютной неэффективности (во всяком случае при > реализации в лоб; или Haskell умеет хранить промежуточные результаты и > использовать их для оптимизации?): > > Fib 0 = 1 > Fib 1 = 1 > Fib x = Fib (x-1) + Fib (x-2) Логично. Hо для прототипа самое то. Это потом я просто заменю на fib 0 = 1 fib 1 = 1 fib x = f x (1, fib 0, fib 1) where f x (n, fnx2, fnx1) = if (x == n) fnx1 (f x (n + 1, fnx1, fnx2 + fnx1)) и получу максимальную эффективность :) все не так плохо :) [....] > >> Краткость - это только для ленивых. Лень - двигатель прогресса :) > >> Прозрачность - это скорее для статей и учебников. В реальном > >> программировании "прозрачность" в значительной степени обеспечивается > >> комментариями (что автоматически снимает требование "краткости"). > PP> И то и другое незаменимо при поддержке и развитии большого > PP> проекта. > > Прозрачность - да. Хотя при выборе между прозрачностью и эффективностью, > скорее предпочтут эффективность. Hо вот что касается краткости - не > согласен... Или ты не об этом, Для прототипа я выберу прозрачность, для релиза - эффективность, но только отдельных критических мест. Я о краткости записи алгоритмов, не имен функций и переменных, а только алгоритмов. B.R. Pavel --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/65775a3eb5d4.html, оценка из 5, голосов 10
|