Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Штудирую книгу ильи) усложнил себе задание (https://javascript.ru/forum/events/52263-shtudiruyu-knigu-ili-uslozhnil-sebe-zadanie.html)

kaflan 10.12.2014 17:00

Штудирую книгу ильи) усложнил себе задание
 
вот тут решил хитрую штуку замутить, и сделать через while рекурсию парсить) и не выходит.
var num = prompt("число",2);
var exp = prompt("степень", 10);
var result = 1;
var cnt = 1;
function pow(num, exp){
    
while(cnt<=exp){
    result*=num;
    cnt++;    
   }
     return alert(result);}

мб помогут разобраться где я делю ошибку, через цикл фор все должно прекрасно работать а с вайлом беда) давайте раберемся ребята)

рони 10.12.2014 23:55

kaflan,
function pow(){
var num = prompt("число",2);
var exp = prompt("степень", 10);
var result = 1;
var cnt = 1;
while(cnt<=exp){
    result*=num;
    cnt++;
   }
     return result}
alert(pow());

krutoy 11.12.2014 01:14

А в чем проблема? Твой код работает
var num = prompt("число",2);
var exp = prompt("степень", 10);
var result = 1;
var cnt = 1;
function pow(num, exp){
     
while(cnt<=exp){
    result*=num;
    cnt++;   
   }
     return alert(result);}

pow(num, exp)

Проблема в том, что ты ее не вызвал?:)
Или "рекурсию парсить" не получается? Попробуй через моноид, в категории эндофункторов.

kaflan 11.12.2014 11:55

Цитата:

Сообщение от krutoy
А в чем проблема? Твой код работает

ракую, просто не знал как рекурсивно ее вызвать спс. это мне очень поможет

kaflan 11.12.2014 11:56

Цитата:

Сообщение от krutoy
Проблема в том, что ты ее не вызвал?
Или "рекурсию парсить" не получается? Попробуй через моноид, в категории эндофункторов.

кикието магические слова, для меня ещенемного и ктулху призовешь)

krutoy 11.12.2014 16:33

Цитата:

Сообщение от kaflan
как рекурсивно ее вызвать

Ты там рекурсивно ничего не вызываешь. Это обычный вызов. Рекурсивно -- это когда изнутри ф-ции вызывается та же ф-ция, либо, вызывается ф-ция, которая вызывает ту же ф-цию -- взаимная рекурсия. Классический пример -- рекурсивный факториал. Насчет моноидов я пошутил, если че.

По поводу парсинга -- тоже не в кассу. Парсинг -- это обработка текста, грубо говоря. Не употребляй слова, значения которх не знаешь.

kaflan 12.12.2014 01:03

Цитата:

Сообщение от krutoy
Парсинг -- это обработка текста, грубо говоря.

ну да

kaflan 12.12.2014 01:04

Цитата:

Сообщение от kaflan
Классический пример -- рекурсивный факториал.

дай сцыль. или код... рекурсия в рекурсии это сдорово

krutoy 12.12.2014 01:22

Цитата:

Сообщение от kaflan
дай сцыль. или код... рекурсия в рекурсии это сдорово

fact=function(n){if(n<2) return n; return n*fact(n-1)}
alert(fact(5))
// 120

И нет тут никакой рекурсии в рекурси, это просто рекурсия. И это не здорово, просто иногда бывает удобней написать рекурсивно, например, при обходе дерева, но в общем случае, такого кода надо избегать, так как это дерьмо отжирает много памяти. Любой рекурсивный код можно переписать в виде цикла.

kaflan 12.12.2014 11:31

Цитата:

Сообщение от krutoy
так как это дерьмо отжирает много памяти

да это единственный минус) пожалуй


Часовой пояс GMT +3, время: 11:50.