Hi Luke, Thanks for the feedback. I had some follow up comments.
On Thu, Dec 31, 2009 at 5:50 AM, Luke Palmer <[email protected]> wrote: > Code looks okay. It suffers from the same persistence/amortization > problem as the classical functional queue; if you happen to shift from > one of the edge cases (eg. prev when the left is empty), you will get > degenerate time complexity, reversing that right list over and over. > See discussion at "Simple and efficient purely functional queues and > deques, by Chris Okasaki"; probably can adapt that solution to yours. > More of an academic interest, I doubt anyone will care about those > cases. > Yes. I agree and did see it. I'm reading the paper and may implement some of the stuff he talks about. > Ring is a comonad, so you can make it an instance of one if you want > to have some fun :-P > I plan on adding as many instances as I know and make sense to me. :) > It seems weird that you would put the focus in the middle in fromList. > Overly strict. Why not just put it at the first element? (Also > easier to reason about) > It actually uses the first element as the focus, not the middle. > I would consider considering a ring where *both* left and right were > infinite to be valid, but not when only one of them is infinite (when > they both are infinite, you will never get to reverse). > This would be neat, perhaps someday. I don't think this works well with my current API. :( Thanks again. :) /jve
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
