Лучше, чем подсчет длины списка единиц

Иногда я пишу такой код:

someFunc :: Foo -> Int
someFunc foo = length $ do
  x <- someList
  guard someGuard
  return ()

Или, что то же самое:

someFunc foo = length [() | x <- someList, someGuard]

Есть ли лучший способ выполнить такого рода вычисления? Более эффективным? Более читабельный? Более идиоматический?

6
задан Dan Burton 18 January 2012 в 02:52
поделиться