はじめに
移植やってます
deque (Python)
cleavage_sites = deque([0], maxlen=ml)
デックは分かるのですが、maxlenは曲者
長さが制限された deque がいっぱいになると、新しい要素を追加するときに追加した要素数分だけ追加したのと反対側から要素が捨てられます
どうする? (Ruby)
class Deque
  attr_accessor :que
  def initialize(*args)
    @que = args[0]
    @maxlen = args[1]
  end
  def push(args)
    @que.push args
    while @maxlen.nil?.! && @que.size > @maxlen
      @que.shift
    end
  end
  def unshift(args)
    @que.unshift args
    while @maxlen.nil?.! && @que.size > @maxlen
      @que.pop
    end
  end
end
deque = Deque.new([1, 2], 3)
deque.push 3
deque.push 4
deque.push 5
p deque.que
deque.unshift 6
deque.unshift 7
deque.unshift 8
p deque.que
deque.que.clear
p deque.que
# [3, 4, 5]
# [8, 7, 6]
# []
このような感じでクラスを作成する。
メモ
- Python の deque を学習した
 - 道のりは遠そう