[Haskell] Почему течет?
От: Аноним  
Дата: 29.06.10 19:44
Оценка:
Всем привет!
Никак не могу понять почему течет память в программе.

test :: () -> ()
test () = test ()
main = putStrLn.show $ test ()

Эксперементами установил, что если сделать так: test () = 1 `seq` test (), то все нормально, т.е. программа крутится в бесконечном цикле, объем занимаемой памяти остается постоянным. Но если поменять 1 на значение какого-то другого типа (даже на 1::Int), память расходуется очень быстро.
Кто-нибудь может объяснить такое поведение? Похоже на баг. Версия GHC 6.12.1
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.