для списков, только чуть присахаренная? 🤔🤔
                  
                  
                  
                  
                  
                  [f x | x <- xs, cond x]
                  
                  
                  
                  
                  
                  do                                                                       
                  
                  
                      x <- xs                                                                     
                  
                  
                      if cond x then return (f x) else fail ""
                  
                  
                
да, можно и так сказать. последняя строчка — Control.Monad.guard
Обсуждают сегодня