LGTM, thanks.
On Sat, Feb 15, 2014 at 12:40 AM, Klaus Aehlig <[email protected]> wrote: > The list monad provides convenient syntax for non-deterministic > algorithms. Add a function leaving that monad with this intuition > in mind. > > Signed-off-by: Klaus Aehlig <[email protected]> > --- > src/Ganeti/BasicTypes.hs | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/src/Ganeti/BasicTypes.hs b/src/Ganeti/BasicTypes.hs > index 30ebc8b..42acd7b 100644 > --- a/src/Ganeti/BasicTypes.hs > +++ b/src/Ganeti/BasicTypes.hs > @@ -48,6 +48,7 @@ module Ganeti.BasicTypes > , handleErrorT > , iterateOk > , select > + , runList > , LookupResult(..) > , MatchPriority(..) > , lookupName > @@ -312,6 +313,12 @@ select :: a -- ^ default result > -> a -- ^ first result which has a True condition, or > default > select def = maybe def snd . find fst > > +-- | Apply a function to the first element of a list, return the default > +-- value, if the list is empty. This is just a convenient combination of > +-- maybe and listToMaybe. > +runList :: a -> (b -> a) -> [b] -> a > +runList a f = maybe a f . listToMaybe > + > -- * Lookup of partial names functionality > > -- | The priority of a match in a lookup result. > -- > 1.9.0.rc1.175.g0b1dcb5 > >
