Что такое some
и many
в Control.Applicative.Alternative
? Если я пишу что-то вроде some $ Just 42
, это, кажется, вызывает бесконечную рекурсию, что кажется не очень полезным...
Хаскелл: некоторые и многие
Ответ 1
Они имеют смысл, когда используются в качестве комбинатора парсера. some
означает, что парсер применяется как можно чаще, но, по крайней мере, один раз. many
аналогичен, но не позволяет разбора. В случае Maybe
, Just ...
никогда не "терпит неудачу", поэтому ваши петли парсера.