Size: a a a

2020 December 15

A

Aragaer in Haskell Start
ну тут явно хвостовой вызов
источник

AA

A64m AL256m qn<co... in Haskell Start
также можно не сделать стековерфлоу без тко
источник

AA

A64m AL256m qn<co... in Haskell Start
Aragaer
ну тут явно хвостовой вызов
ну я так и сказал, что с тко можно стек вышибить
источник

A

Aragaer in Haskell Start
можно
источник

AA

A64m AL256m qn<co... in Haskell Start
это опять исполнение в какой-то песочнице? потому что при настройках стека по умолчанию его скорее при зацикливании только переполнить можно
источник

A

Aragaer in Haskell Start
мм, ну у меня вот такое:
game i n m = n' : game (i+1) n' m'
 where
   n' = i - 1 - M.findWithDefault (i-1) n m
   m' = M.insert n (i-1) m
источник

AA

A64m AL256m qn<co... in Haskell Start
ну так тут и при работающей ТКО можно стек переполнить
источник

AA

A64m AL256m qn<co... in Haskell Start
ПМ аллоцирует на СТГ-ном стеке же
источник

AA

A64m AL256m qn<co... in Haskell Start
но и рекурсия не хвостовая
источник

A

Aragaer in Haskell Start
сделал без списка
источник

AA

A64m AL256m qn<co... in Haskell Start
но даж если переписать с аккумулятором все равно вышибет если вычисление n' не форсировать на каждом шаге
источник

A

Aragaer in Haskell Start
game turn i n m = if i == turn then n' else game turn (i+1) n' m'
 where
   n' = i - 1 - M.findWithDefault (i-1) n m
   m' = M.insert n (i-1) m
источник

A

Aragaer in Haskell Start
теперь точно хвостовая
источник

AA

A64m AL256m qn<co... in Haskell Start
ну теперь только форсировать аккумуляторы осталось
источник

AA

A64m AL256m qn<co... in Haskell Start
да, рекурсивная лапша может и без того соптимизироваться, особенно мономорфная, но лучше ее конечно не писать
источник

A

Aragaer in Haskell Start
ага, форсировал, дошло до конца
источник

A

Aragaer in Haskell Start
real  1m3.672s
user  1m3.274s
sys  0m0.377s
источник

TZ

Timofey Zakrevskiy in Haskell Start
у меня тоже как-то всё не слишком радужно на иммутабельных мапах=)
источник

A

Aragaer in Haskell Start
мне вот интересно, насколько там большие числа вообще бывают. На си я бы просто сделал тупо массив вообще без хеширования
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Достаточно большие
источник