LINUX.ORG.RU

История изменений

Исправление qnikst, (текущая версия) :

То достаточно вычислить до слабой головной нормальной формы, чтобы понять, что перед тобой Left или Right.

пусть foo :: String, bar :: String -> Either e a если мы делаем

case bar foo of
  Left .. -> ...
  Right .. -> ...
то вычисление bar во многих случаях должно обработать всё foo даже для того, чтобы вычислить WHNF, причем если это вычисление обламывается на последнем символе.

Про второе - да можно, а функции вида это mapM, filterM, fodlM над Either e.

про остальное - да.

Исходная версия qnikst, :

То достаточно вычислить до слабой головной нормальной формы, чтобы понять, что перед тобой Left или Right.

пусть foo :: String, bar :: String -> Either e a если мы делаем

case bar foo of
  Left .. -> ...
  Right .. -> ...
то вычисление bar должно обработать всё foo даже для того, чтобы вычислить WHNF, причем если это вычисление обламывается на последнем символе.

Про второе - да можно, а функции вида это mapM, filterM, fodlM над Either e.

про остальное - да.