Использование 'Either' в Haskell

У меня есть два значения, t1 и t2 , типа Either String Type . Значение Left используется для обработки ошибок. Эти значения используются в функции, которая возвращает Either String Type .

Я хочу проверить, являются ли оба t1 и t2 Справа -значения и удовлетворяют p :: Type -> Bool . Если они это сделают, я хочу вернуть Right (тип внутри t1) . Если оба t1 и t2 имеют Right -значения, но не удовлетворяют p , я хочу вернуть Left someString . Если одно из t1 или t2 является значением Left , я просто хочу передать это значение.

Как я могу сделать это элегантным способом ? У меня есть предчувствие, что использование Either в качестве монады - правильное решение, но я не знаю, как это сделать.

6
задан Viktor Dahl 9 June 2011 в 09:27
поделиться