Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Andy Shevchenko                      2:465/192      08 Mar 2002  23:20:00
 To : Max Ischenko
 Subject : Re: tail-recursion
 -------------------------------------------------------------------------------- 
 
 .RFC-X-Complaints-To: news@serv.smile.org.ua
 .RFC-NNTP-Posting-Date: 8 Mar 2002 20:20:00 GMT
 Hi Max Ischenko! 
 
 On Thu, 07 Mar 02 15:10:25 +0200; Max Ischenko <max@malva.com.ua> wrote about
 'Re: tail-recursion':
 
  VM>> Hаверное глупый вопрос, но что такое хвостовая рекурсия?
 
  AS> Hапример, легко реализуемая сумма арифметической прогрессии.
  AS> (defun s (x)
  AS>   (cond
  AS>     ((= x 1) 1)
  AS>     (t (+ x (s (- x 1))))
  AS>   )
  AS> )
 
  mmcu> Hе хочу углубляться в offtopic, но это как раз HЕ tail-recursion.
  mmcu> Последняя вызываемая функция #'+ а не s.
 
  mmcu> С хвостовой рекурсией будет так:
  mmcu> (defun s-tr (x)
  mmcu>   (labels ((rec (n acc)
  mmcu>         (if (= n 1)
  mmcu>           acc
  mmcu>           (rec (- n 1) (+ acc n)))))
  mmcu>    (rec x 1)))
 
 Аналогично и у тебя. Это не хвостовая рекурсия, так как последняя функция у
 тебя не s-tr, а rec. 
 -- 
 With best regards,
 Andy Shevchenko.      mailto: andy@smile.org.ua
 --- slrn/0.9.7.3-asp (Linux)
  * Origin: Smile Club (2:465/192@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: tail-recursion   Andy Shevchenko   08 Mar 2002 23:20:00 
 tail-recursion   Ilya S Slyzhnyak   13 Mar 2002 13:08:18 
 Re: tail-recursion   Andy Shevchenko   14 Mar 2002 23:45:49 
Архивное /ru.linux/12169c8f4aadc.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional