и возник вопрос про NFData, а конкретно про пример NFData (Tree a). Почему rnf определена как
rnf (Branch l a r) = rnf l `seq` rnf a `seq` rnf r
Мне кажется, что необходим ещё seq () в конце. Ведь если переписать всё в префиксной форме получится seq (seq (rnf l) (rnf a)) (rnf r). А это значит, что (rnf r), будет просто возвращен, но не будет вычислен до WHNF. Где ошибка в моём рассуждении?
Ошибки в рассуждении вроде бы нет. Может быть, так и надо?
Обсуждают сегодня