One of my favorite things about the intcode computer was implementing the extendable memory by just appending an infinite list of zeros using haskell's lazy evaluation.
Unfortunately my implementation was incredibly slow (probably because of the linked lists) and I only made it about halfway through.