tag:blogger.com,1999:blog-5411819754291292105.post4575086116761513158..comments2023-04-10T00:28:48.006-07:00Comments on archimag: Нерекурсивная реализация функции Аккерманаarchimaghttp://www.blogger.com/profile/07997791035847047137noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-5411819754291292105.post-89587475825557775282010-03-20T14:08:37.158-07:002010-03-20T14:08:37.158-07:00> Теперь чуть больше - 3 15 еще получилось,
>...> Теперь чуть больше - 3 15 еще получилось,<br />> а 3 16 - уже нет<br /><br />Можно модифицировать данную реализацию, время от времени очищая стэк. Считать можно будет больше :)archimaghttps://www.blogger.com/profile/07997791035847047137noreply@blogger.comtag:blogger.com,1999:blog-5411819754291292105.post-86061338510841882702010-03-20T14:07:00.942-07:002010-03-20T14:07:00.942-07:00Я автор той темы на lisper.ru.
Препод никогда еще ...Я автор той темы на lisper.ru.<br />Препод никогда еще не видел настолько заинтересованных студентов, которые вычисляли аккермана до 3 14 и 4 1. Теперь чуть больше - 3 15 еще получилось, а 3 16 - уже нет (2 ГБ ram).<br /><br />Еще раз спасибо archimag за помощь.Anonymoushttps://www.blogger.com/profile/02358796932044954613noreply@blogger.comtag:blogger.com,1999:blog-5411819754291292105.post-80259203472419434872010-03-10T03:14:13.968-08:002010-03-10T03:14:13.968-08:00можно, например, переписать ее в CPS стиле
let ack...можно, например, переписать ее в CPS стиле<br />let ack_cps m n = <br /> let rec impl m n k = <br /> if m = 0I then k (n + 1I)<br /> else if m > 0I && n = 0I then impl (m - 1I) 1I k<br /> else impl m (n - 1I) (fun r -> <br /> impl (m - 1I) r k<br /> )<br /> impl m n idVladimir Matveevhttps://www.blogger.com/profile/17681155682560422821noreply@blogger.comtag:blogger.com,1999:blog-5411819754291292105.post-43020515888957361662010-03-10T02:20:19.155-08:002010-03-10T02:20:19.155-08:00> Интересно, что на это скажут Хаскеллисты?
Х....> Интересно, что на это скажут Хаскеллисты?<br /><br />Х.з. Вообще, эта функция тоже довольно жадная до памяти (только не до стэка, я для памяти из кучи). Но её можно слегка модифицировать, увеличив время выполнения, но снизив требования к памяти, так что бы хранился только кэш вычисленных значений.archimaghttps://www.blogger.com/profile/07997791035847047137noreply@blogger.comtag:blogger.com,1999:blog-5411819754291292105.post-59323011753086411752010-03-10T02:11:03.659-08:002010-03-10T02:11:03.659-08:00Интересно, что на это скажут Хаскеллисты?Интересно, что на это скажут Хаскеллисты?zahardzhanhttps://www.blogger.com/profile/06066181731063417392noreply@blogger.comtag:blogger.com,1999:blog-5411819754291292105.post-3426885656722255592010-03-10T00:18:55.468-08:002010-03-10T00:18:55.468-08:00Нельзя, конечно, никакие TCO здесь не помогут.Нельзя, конечно, никакие TCO здесь не помогут.archimaghttps://www.blogger.com/profile/07997791035847047137noreply@blogger.comtag:blogger.com,1999:blog-5411819754291292105.post-29859383931340768322010-03-09T22:27:06.378-08:002010-03-09T22:27:06.378-08:00Хм, сейчас посмотрел собственно функцию (да-да, по...Хм, сейчас посмотрел собственно функцию (да-да, по ссылке сначало не прошел :))... интересно, а ее в хвостовую рекурсию-то завернуть вообще можно... (ушел думать...)Unknownhttps://www.blogger.com/profile/02117506211568019634noreply@blogger.comtag:blogger.com,1999:blog-5411819754291292105.post-37135980926933273992010-03-09T22:20:26.411-08:002010-03-09T22:20:26.411-08:00А что, рекурсивный вариант даже в случае "хво...А что, рекурсивный вариант даже в случае "хвостовой" рекурсии кушает стек? O_oUnknownhttps://www.blogger.com/profile/02117506211568019634noreply@blogger.com