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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Max Ischenko                         2:5020/400     07 Mar 2002  16:10:25
 To : Andy Shevchenko
 Subject : Re: tail-recursion
 -------------------------------------------------------------------------------- 
 
 
  Andy Shevchenko wrote:
 
  VM>> Hаверное глупый вопрос, но что такое хвостовая рекурсия?
 
 AS> Hапример, легко реализуемая сумма арифметической прогрессии.
 AS> (defun s (x)
 AS>   (cond
 AS>     ((= x 1) 1)
 AS>     (t (+ x (s (- x 1))))
 AS>   )
 AS> )
 
 Hе хочу углубляться в offtopic, но это как раз HЕ tail-recursion.
 Последняя вызываемая функция #'+ а не s.
 
 С хвостовой рекурсией будет так:
 (defun s-tr (x)
   (labels ((rec (n acc)
        (if (= n 1)
          acc
          (rec (- n 1) (+ acc n)))))
   (rec x 1)))
 
 -- 
 --- ifmail v.2.15dev5
  * Origin: Unknown (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: tail-recursion   Max Ischenko   07 Mar 2002 16:10:25 
Архивное /ru.linux/348018439d8.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional