Thanks for the quick and short answer. Maybe I am already thinking too
complicated.

However, exactly your given preconditions I can not satisfy.

> The preconditions for bestFirst rate edges xs are:  map rate xs must
> be nondecreasing, 

Here lies my problem, because edges must also be applied to xs. So a
quick fix of bestFirst would be the following:

bestFirst' :: (Ord o) => (a -> o) -> (a -> [a]) -> [a] -> [a]
bestFirst' rate edges = go
    where
    go [] = []
--  go (x:xs) = x : go (mergeOn rate (edges x) xs)
    go (x:xs) = x : go (mergeOn rate (edges x) 
                                     (sortBy rate (concatMap edges xs))

And here I am afraid, that my efficiency gets worse.

Or do I worry too much?

Thanks


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to