|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Andy Shevchenko 2:465/192 11 Mar 2002 13:18:01 To : Max Ischenko Subject : Re: tail-recursion -------------------------------------------------------------------------------- .RFC-X-Complaints-To: news@serv.smile.org.ua .RFC-NNTP-Posting-Date: 11 Mar 2002 10:18:01 GMT Hi Max Ischenko! On Mon, 11 Mar 02 10:01:42 +0200; Max Ischenko <max@malva.com.ua> wrote about 'Re: tail-recursion': 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))) AS> Аналогично и у тебя. Это не хвостовая рекурсия, так как последняя функция у AS> тебя не s-tr, а rec. mmcu> Все правильно. Рекурсивной функцией ведь является REC, а не S-TR и mmcu> именно в ней mmcu> используется tail-recursion. А S-TR никак не рекурсивна, это да. А вот поэтому у тебя и нет хвостовой рекурсии. Так что: mmcu> Учите матчасть. (c) Должно быть что-то вроде (defun recurrr (args) ... smth ... recurrr (args2) ) -- With best regards, Andy Shevchenko. mailto: andy@smile.org.ua --- slrn/0.9.7.3-asp (Linux) * Origin: Smile Club (2:465/192@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/12169f4da6700.html, оценка из 5, голосов 10
|