![]() |
Модераторы: LSD Страницы: (144) « Первая ... 52 53 [54] 55 56 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
А зачем? Если при обработке дерева рекурсия всё сильно упрощает, а в случае со списками она никакой выгоды не даёт. Тут ведь была высказана мысль, что единственный результат от использования рекурсии - опасность переполнения стека. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
serger |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 0 Всего: 5 |
Ну само-собой, опять-таки - язык оперделяет мышление.
Есть определённые правила - они зависят от языка. Когда правил-ограничений много - ругаемся, что нам подрезают крылья. Когда мало - что как же легко ошибиться. -------------------- упс! |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
||||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
В функциональном стиле удобно работать тогда, когда язык к этому приспособлен. Кроме того, функцональный стиль - это не только рекурсия, а ещё и набор готовых функций типа ( map, fold, lter и т. д.). В дотнете это, например, linq-запросы, это тоже функцинальный стиль. И ещё не надо забывать о том, что в чистых функциональных языках циклов и переменных вообще нет, так что там их замена рекурсией и аккумуляторами соответственно, - используются не только и зачастую не столько из-за того, что циклы хуже. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
k0rvin |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Где вы тут хвостовую рекурсию увидели? Хвостовая рекурсия -- это вот:
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||||
|
|||||||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
О хвостовой рекурсии я упомянул в ответ на ссылку из поста, следующего за твоим. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
serger |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 0 Всего: 5 |
Я бы сказал, всё же ... И соответственно ...
![]() -------------------- упс! |
||||
|
|||||
diadiavova |
|
||||||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
serger, то ли ты меня не понял, то ли я тебя. Поясню, о чем я говорил. Насколько я понял, твоя ссылка на статью о хвостовой рекурсии призвана была сказать, что рекурсию можно оптимизировать и тогда она не будет вызывать тех проблем, которых обычно опасаются при ее использовании. На что я тебе ответил, что хвостовая рекурсия - штука довольно хитрая и приведя рекурсию к хвостовому виду, действительно можно избавиться от опасности переполнения стека, но только в том случае, если ее оптимизация поддерживается на уровне языка. Функциональные языки поддерживают такую оптимизацию всегда, это одна из фич функциональных языков. Вот приведу пример простейшей функции на F#, функция вычисляет сумму всех чисел в списке
Теперь если скомпилировать этот код и просмотреть в декомпиляторе на C#, то никакой рекурсии ты там не увидишь, а увидишь буквально следующее
Или на бейсике
Теперь, если подобный код написать на C#
Вот это я и имел в виду, говоря о приспособленности языка. Это, конечно же, не значит, что нельзя использовать другие методы оптимизации(такие как мемоизация например) но вот с хвостовой рекурсией пример неудачный. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
||||||||
|
|||||||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 4 Всего: 161 |
diadiavova, ты лапа!!!!
![]() Совершенно не могу понять, как у тебя так получилось, что прочитав твой ответ, мало что в нем поняв, у меня таки осталось наистойчайшее ощущение, что serger не прав, и член партии "Справедливая Россия". Искренне завидую твоей такой способности, искренне сожалею, что ты не любишь Делфи ![]() Это сообщение отредактировал(а) Zloxa - 17.4.2013, 19:30 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: нет Всего: 8 |
Zloxa а я впечатлён тем что у daidaivova нашлось желание разобратся в F#. Я три раза пытался и дальше простейших примеров дело нешло. Какой же я ленивый....
![]() ![]() Также я тоже в первой части ничего не понал ![]() |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 4 Всего: 161 |
Признаюсь, во всем дойнете для меня привлекательными выглядят пока лишь F# и linq -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
А что именно непонятно? ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 4 Всего: 161 |
К чему было все это изложение и разложение по полочкам. ![]() -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 4 Всего: 142 |
К тому, что до этого я упомянул хвостовую рекурсию и в ответ получил два поста, из которых следовало, что меня просто не поняли. Я решил изложить все подробно, чтобы не было непоняток. Но как выяснилось, это вызывало еще больше непоняток и теперь я уже сам не понимаю, надо ли что-то еще объяснять, поскольку, судя по всему, мои объяснения не проясняют ситуацию, а даже наоборот ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |