Хаскелл: некоторые и многие

Что такое some и many в Control.Applicative.Alternative? Если я пишу что-то вроде some $ Just 42, это, кажется, вызывает бесконечную рекурсию, что кажется не очень полезным...

Ответ 1

Они имеют смысл, когда используются в качестве комбинатора парсера. some означает, что парсер применяется как можно чаще, но, по крайней мере, один раз. many аналогичен, но не позволяет разбора. В случае Maybe, Just ... никогда не "терпит неудачу", поэтому ваши петли парсера.