Parsec
документ говорит следующее о <|>
Выбор оператора в библиотеке Haskell пс в
Этот комбинатор реализует выбор. Сначала используется парсер p < |> q. Если это удается, возвращается значение p. Если p терпит неудачу без , потребляющего любой вход, выполняется попытка анализатора q. Этот комбинатор определен , равный члену mplus класса MonadPlus, и (Control.Applicative. < |>) членом Control.Applicative.Alternative.
Как реализовать обратную версию версии <|>
? Он возвращается, когда p
потребляет любой вход, поэтому q
может быть применен к полному вводу снова.