Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.06.2014, 17:02
Интересующийся
Отправить личное сообщение для der-coder Посмотреть профиль Найти все сообщения от der-coder
 
Регистрация: 17.06.2014
Сообщений: 17

Рекруссия - да никогда в жизни!
бывают ли такие программисты которые практически никогда ее не используют?

вопрос возник от того что в некоторых учебниках пишут что это нехорошее свойство языка

что если бы этого свойства не было в JS?

Последний раз редактировалось der-coder, 17.06.2014 в 17:04.
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2014, 17:14
Аватар для Makarov
Профессор
Отправить личное сообщение для Makarov Посмотреть профиль Найти все сообщения от Makarov
 
Регистрация: 08.07.2013
Сообщений: 212

Любую рекурсию можно заменить циклом и стеком. Потому что рекурсия и есть по сути цикл со стеком. Другой вопрос - зачем? Рекурсия - мощное выразительное свойство языка и если представлять ее возможности и ограничения, чего бы ей не пользоваться.

Часто рекурсивный вызов куда короче и читабельнее портянки циклов. Да циклом сделать иногда эффективнее чем рекурсией, в особо запущенных случаях в разы эффективнее. Но тут классическая дилемма между сложностью поддержки и быстродействием. Обычно сложность поддержки - куда более узкое место.

Последний раз редактировалось Makarov, 17.06.2014 в 17:22.
Ответить с цитированием
  #3 (permalink)  
Старый 17.06.2014, 18:52
Интересующийся
Отправить личное сообщение для der-coder Посмотреть профиль Найти все сообщения от der-coder
 
Регистрация: 17.06.2014
Сообщений: 17

вопрос об отмене / неиспользовании рекурсии например возникает при обучении детей программированию - лишняя сложность не желательна
Ответить с цитированием
  #4 (permalink)  
Старый 17.06.2014, 20:17
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Рекурсия - вещь элементарнейшая же.
Ответить с цитированием
  #5 (permalink)  
Старый 17.06.2014, 20:28
Интересующийся
Отправить личное сообщение для der-coder Посмотреть профиль Найти все сообщения от der-coder
 
Регистрация: 17.06.2014
Сообщений: 17

Сообщение от Erolast Посмотреть сообщение
Рекурсия - вещь элементарнейшая же.
поверь мне - она есть либо ее нет

"бритва обамы" - каждый программист должен это понимать

я ж тебе гоаворю - я в учебнике по языкам программирования читал что не рекомендуется включать эту возможность в язык дабы избежать возможных проблем...
- соответственно если она легко эмулируется циклами то накой фиг она тогда
Ответить с цитированием
  #6 (permalink)  
Старый 17.06.2014, 20:34
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
я ж тебе гоаворю - я в учебнике по языкам программирования читал что не рекомендуется включать эту возможность в язык дабы избежать возможных проблем...
Мало ли что там пишут. Вообще учебники частенько пишут те, кто сами нихрена ничего не программируют и не умеют. То же с учителями информатики.

Цитата:
- соответственно если она легко эмулируется циклами то накой фиг она тогда
Простота, понятность и гибкость кода.
Ответить с цитированием
  #7 (permalink)  
Старый 17.06.2014, 20:55
Аватар для Makarov
Профессор
Отправить личное сообщение для Makarov Посмотреть профиль Найти все сообщения от Makarov
 
Регистрация: 08.07.2013
Сообщений: 212

Сообщение от der-coder Посмотреть сообщение
я ж тебе гоаворю - я в учебнике по языкам программирования читал что не рекомендуется включать эту возможность в язык дабы избежать возможных проблем...
В таких случаях стоит приводить название и автора учебника, чтобы мы их тут дружно обругали

Сообщение от der-coder Посмотреть сообщение
- соответственно если она легко эмулируется циклами то накой фиг она тогда
Стоп! Кто говорил что она легко эмулируется циклами? Она в принципе эмулируется. Как раз в большинстве случаев реализация циклом сложнее с точки зрения человека. Читать рекурсивные вызовы проще чем циклы в которых приходится думать "а чего это там в стеке лежит на пятнадцатой итерации?"

Вообще зачем это все нужно? Всякие условные операторы, циклы, замыкания, ооп? Зачем это все нужно? Излишние сложности же, берем любой тьюринг-полный язык типа брейнфака - и вперед.
Ответить с цитированием
  #8 (permalink)  
Старый 17.06.2014, 21:39
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

der-coder, для начала расскажи о себе Сколько у тебя лет стажа, на каких языках разрабатывал проекты. Или ты студент, прочитал полкнижки и тебе внезапно открылась сущность бытия?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чём смысл жизни? Tim Оффтопик 75 30.03.2014 18:06
Линукс это не образ жизни, это просто ОС Gozar Оффтопик 139 01.12.2013 17:50
prototype в реальной жизни animhotep Общие вопросы Javascript 22 23.03.2013 00:12
Время жизни блока (сообщения) ILYA609 jQuery 1 18.03.2010 00:42