Entry tags:
Haskell, newtype vs data
Сегодня на stackoverflow, отвечая на вопрос, Andreas Hammar привёл хорошие примеры. Сохраняю на будущее, как простые задачки для студентов
data D a = D a data S a = S !a newtype N a = N a constD x (D y) = x constS x (S y) = x constN x (N y) = xКакие из следующих вызовов завершат свою работу как Deep Thought, а какие как Earth?
D undefined `seq` 42 S undefined `seq` 42 N undefined `seq` 42 constD 42 undefined constS 42 undefined constN 42 undefined