Мне было очень интересно об этом, но я ничего не смог найти.
При использовании функции seq
, как она действительно работает? Повсеместно объясняется, что seq a b
оценивает a
, отбрасывает результат и возвращает b
.
Но что это значит? Был бы следующий результат в строгой оценке:
foo s t = seq q (bar q t) where
q = s*t
То, что я имею в виду, является q
строго оцененным, прежде чем использоваться в bar
? И было бы эквивалентно следующее:
foo s t = seq (s*t) (bar (s*t) t)
Я немного затрудняюсь с детализацией функциональности этой функции.