Załóżmy, że Parser x
jest analizatorem składni, który analizuje numer x
. Ten parser prawdopodobnie posiada kombinator many
, który analizuje zero lub więcej wystąpień czegoś (zatrzymuje się, gdy parser elementów zawiedzie).Pętla warunkowa w programie użytkowym
Widzę, jak można to zrealizować, jeśli Parser
tworzy monadę. Nie mogę wymyślić, jak to zrobić, jeśli Parser
jest tylko Applicative Functor. Wydaje się, że nie ma sposobu, aby sprawdzić poprzedni wynik i zdecydować, co dalej (dokładnie to, co dodają monady). czego mi brakuje?
Dla mnie kluczową kwestią jest to, że "decyzja" jest realizowana za pomocą '<|>'. Nie wiem, dlaczego tego nie wymyśliłem ... – MathematicalOrchid