lomeo: (лямбда)
Dmitry Antonyuk ([personal profile] lomeo) wrote2012-11-30 05:48 pm

Рекурсия

Я это как-то писал, но напишу ещё раз, бо тема поднялась.

Недостатки явной рекурсии по сравнению с комбинаторами (ага, zip3):

  • Рекурсия непонятна (согласен, это субъективное).
  • Обычно используется с декомпозицией, нарушая инкапусляцию.
  • Всегда используется для работы с элементами, вместо работы с коллекцией (wholemeal programming).
  • Цепочка вызовов проще для оптимизации.
  • Сложнее нежно мною любимый equational reasoning.

Юный хаскеллист, избегай явной рекурсии!

Ну и ссылочка, куда без неё!

[identity profile] thesz.livejournal.com 2012-12-01 11:00 pm (UTC)(link)
Спасибо!

Я, откровенно говоря, не помнил алгоритма топологической сортировки.
ext_659502: (полосатая свинья)

[identity profile] some41.livejournal.com 2012-12-01 11:34 pm (UTC)(link)
да там особенно нечего помнить -- он очевиден, никакой хитрости в нем нет. и если честно, то у меня тоже неправильная сложность из-за lookups в Map и Set. но, думаю, все равно лучше, чем с поисками в полностью развернутом графе.