[Haskell] Непонятное поведение
От: Аноним  
Дата: 03.01.09 17:39
Оценка:
По мере эксперементирования с хаскелем наткнулся на следующее, странное (как по-моему), поведение.
foo =
    let test = "asdf"
    in let (a:test) = test
       in test

main :: IO ()
main = putStrLn foo


Собственно, если запустить этот пример, скомпилировав его без оптимизаций, то он просто виснет. Если скомпилировать с O2, то пишет "test: <<loop>>". Я ожидал увидеть "sdf". Тип у foo выводится [t]. Подскажите пожалуйста, так и должно быть? Если да, то почему? Компилятор ghc 6.10.1.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.