fork download
  1. type
  2. RefSeq[T] = ref seq[T]
  3.  
  4. proc newRefSeq[T]: RefSeq[T] =
  5. result = new(seq[T])
  6. result[] = @[]
  7.  
  8. proc add[T](rs: RefSeq[T], t: T) =
  9. add rs[], t
  10.  
  11. proc delete[T](rs: RefSeq[T], i: int): T =
  12. delete rs[], i
  13.  
  14. iterator items[T](rs: RefSeq[T]): T =
  15. for i in items(rs[]):
  16. yield i
  17.  
  18. # Test
  19.  
  20. let rs = newRefSeq[int]()
  21. add rs, 1
  22. add rs, 2
  23. add rs, 3
  24.  
  25. echo delete(rs, 0)
  26.  
  27. for i in rs:
  28. echo i
Success #stdin #stdout 0s 2424KB
stdin
Standard input is empty
stdout
0
2
3