LINUX.ORG.RU

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

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

Для этого надо явно сделать «events@…». Это случайно написать достаточно сложно.

Да, можно случайно ошибиться, если использовать разные имена для хвоста списка.

main events = (readFile "a"):g events
 where
   -- должно быть g (inString с:events) = ...
   g (inString с:events') = (writeFile "b" с):(readNextFile "c"):h events

Но имя с штрихом тоже используется только если надо одновременно обращаться к варианту без штриха и со штрихом. То есть тоже маловероятно. А если писать g и h не внутри where, то ошибка вообще невозможна.

К слову, зато есть возможность обратиться к прошлому или позапрошлому событию. В IO никак, разве что явно копировать в какой-то журнал.

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

Для этого надо явно сделать «events@…». Это случайно написать достаточно сложно.

Да, можно случайно ошибиться, если использовать разные имена для хвоста списка.

main events = (readFile "a"):g events
 where
   -- должно быть g (inString с:events) = ...
   g (inString с:events') = (writeFile "b" с):(readNextFile "c"):h events

Но имя с штрихом тоже используется только если надо одновременно обращаться к варианту без штриха и со штрихом. То есть тоже маловероятно.

К слову, зато есть возможность обратиться к прошлому или позапрошлому событию. В IO никак, разве что явно копировать в какой-то журнал.