Hacker News new | ask | show | jobs
by marvy 3576 days ago
You could, but then it's not quite so quick-and-dirty anymore :) The de-queue method goes from "self.i += 1" (Python syntax) to

    self.i +=1
    if self.i > len(self.a)/2:
      self.a[:self.i] = []
      self.i = 0
I didn't test the above code, and I am only 50% sure it is bug-free. I'm 99% sure the leaky version is bug-free. Memory leaks are not a bug if I document them, right? ;)

But yes, periodically deleting the wasted space is still easier than trying to do the usual thing with circular buffers and stuff :)

2 comments

Easier and a major performance disaster. You shouldn't ever do this ever. If you are a programmer, it's your job to implement this correctly.
Asooka: a lot of your comments are showing up as dead. I have no clue why, they seem fine to me. I can't reply directly to the one you made in this thread: it's dead too.
I definitely see your point! I guess there is a place for algorithms at any point on the easy/good trade-off.