Я много думал об этом, но ничего не нашел.
При использовании функции 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)
Я нахожу это немного трудным для понимания функциональности этой функции.