Головна сторінка Груп Google
Довідка | Записатися
Допис з розмови Why my list function eats memory?
Група, до якої ви додаєте допис, - група Usenet. Відтак, будь-хто в Інтернеті бачитиме вашу електронну адресу.
Вашу відповідь не було надіслано.
Ваш допис було надіслано
 
Від:
Кому:
Копія:
Продолжить:
Додати копію: | Додати продовження: | Редагувати тему
Тема:
Підтвердження:
З метою підтвердження введіть символи, які ви бачите на зображенні нижче або числа, які чуєте, натиснувши значок доступу. Прослухайте і введіть цифри, що чуєте
 
Paul Graphov  
Переглянути профіль
 Більше налаштувань 30 Вер 2008, 22:35
Групи новин: comp.lang.haskell
Від: Paul Graphov <grap...@gmail.com>
Дата: Tue, 30 Sep 2008 12:35:15 -0700 (PDT)
Локально: Вт 30 Вер 2008 22:35
Тема: Re: Why my list function eats memory?
> No, because the drop's are shared. Or are you for some reason trying
> to evaluate the last element first when using the result (see below)?

Yes, I just used "!! 1000000" on it while testing.
If I print all million elements no stack overflow occurs.
It seems that this was the reason that programs behaved different
ways.

> > And "takeWhile (not . null)" actually pattern matches them against
> > "[]" so they are forced to be calculated.

> But that evaluation will stop after it encounters the first cons,
> so it will leave a chunk like "y : (take (n-1) x (drop (d-1) ...))".
> Hence that cannot be the reason.

Hmmm... It seems to me to get first cons one must remove ALL drops?
You cannot check if (drop d (drop d(..............)) is nul until you
unwind all drops...
Thanks.

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

Створити групу - Групи Google - Домівка Google - Правила користування послугою - Заява про конфіденційність і нерозголошення інформації
©2009 Google