![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Как известно seq вычисляет свой первый аргумент до слабой заголовочной нормальной формы (WHNF). Не пользуясь GHCi, ответьте на вопрос, каково будет значение следующего выражения
Prelude> (\True y -> ()) False `seq` 5Проверьте себя в GHCi. Какова будет полученная в первом аргументе seq WHNF? UPD. А теперь вопрос на засыпку: каково будет значение следующего выражения
Prelude> (\True -> \y -> ()) False `seq` 5Считаете ли вы это правильным?
no subject
Date: 2015-10-01 12:08 am (UTC)Другой дело, что возможно сам такой подход неправильный. Получается, что даже если мы знаем, что f::A->B, мы вчё равно не можем сказать, будет ли (f a) WHNF или нет, не зная как f была определена.
no subject
Date: 2015-10-01 08:18 am (UTC)Если мы используем lambda abstraction, то для трансляции используется
из раздела 3.3 Haskell Report. А если function binding, то
из раздела 4.4.3.1.
no subject
Date: 2015-10-01 09:56 am (UTC)