#module
#deffunc meminit int
mref num, 0
dim _mem, num
crnt = 0 : memnum = num
return
#deffunc enq int
mref data, 0
if crnt + 1 < memnum : crnt++
repeat memnum - 1, 1
i = memnum - cnt
j = memnum - cnt - 1
_mem.i = _mem.j
loop
_mem = data
return
#deffunc deq
mref stt, 64
stt = 0
if crnt < 0 : return
stt = _mem.crnt
crnt--
return
#global
meminit 3 // 3個まで保持
enq 1 // [1]
enq 2 // [2][1]
enq 3 // [3][2][1]
deq // [3][2]
mes stat
deq // [3]
mes stat
enq 4 // [4][3]
enq 5 // [5][4][3]
enq 6 // [6][5][4] 3個を超えたので初めの[3]は消滅
deq // [6][5]
mes stat
deq // [4]
mes stat
deq
mes stat
stop
|