функция seq и строгость

Я много думал об этом, но ничего не нашел.

При использовании функции 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)

Я нахожу это немного трудным для понимания функциональности этой функции.

40
задан Undreren 15 June 2012 в 07:45
поделиться