169 похожих чатов

А как с таким борятся ? про термин стак тут

мне пока не попадалось

ghci> foldr (\(CotMD n ctM _) (mstep,pos) -> if ctM > mstep then (ctM, n) else (mstep, pos)) (0,0) $ take 10000000 listcot2
*** Exception: stack overflow

13 ответов

35 просмотров

тут логическая ошибка бесконечной рекурсии. с логическими ошибками можно бороться отладкой и тестами. проверить сначала на маленьких данных

Fedor- Автор вопроса
Cheese Syrowiecki
тут логическая ошибка бесконечной рекурсии. с логи...

с маленькими работает, то есть если на 0 меньше таке, то все ок.... вопрос был конкретно про такую ошибку

Fedor
с маленькими работает, то есть если на 0 меньше та...

о, это важное дополнение. важна не просто ошибка, а в каких условиях она проявляется

здесь слишком большая ленивая формула строится. отложите эту задачу до тех пор, пока не прочитаете главу про лень и строгость

можете дать данные (в личку), я проверю у себя, и если найду простое решение, то подскажу что-нибудьЮ

Fedor
с маленькими работает, то есть если на 0 меньше та...

попробуй на foldl' заменить. не факт, конечно, но может сработать

Fedor
с маленькими работает, то есть если на 0 меньше та...

проверил, это не бесконечная рекурсия, а слишком много задумок. можно расставить бэнги, например, data CotRes = CotRes !Int !Int !Int !Int

Cheese Syrowiecki
проверил, это не бесконечная рекурсия, а слишком м...

нет, так не сработало. всё равно память кончилась, но позже

Cheese Syrowiecki
нет, так не сработало. всё равно память кончилась,...

Ещёб она не кончилась, у тебя в foldr шаг строгий

Gentle Rabbit
Ещёб она не кончилась, у тебя в foldr шаг строгий

она и без этого кончается, только в другом месте

Cheese Syrowiecki
она и без этого кончается, только в другом месте

Ну потому что мемори лик в понял аккумулятора это не ленивый шаг. Шаг является ленивым в том случае, если его можно вычислить без вычисления хвоста.

Cheese Syrowiecki
действительно, foldl' помогла

https://github.com/hasura/graphql-engine/pull/2933#discussion_r328821960

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
кто шарит: mattermost отслеживает что ты на пк запускаешь?
Valentin
13
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int digits1[n] = {0}; int digits2[n] = {0}; я не могу таким образом заранее массив нулями заполнить?
Linus
12
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
я про форму записи. смысл указывать что 8 байтный регистр 8 байт?
Aiwan \ (•◡•) / _bot
10
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
5
Карта сайта