title: How to remove element from list while iterating the same list in golang
body: <p>I am new to go language. I would like to remove elements from the list while iterating the list based on a condition in go language. For example I want remove the duplicate elements from the list. Code is given below. </p>
  
  <pre><code>package main
  import (
      "container/list"
      "fmt"
  )
  var sMap map[int]bool
  func main() {
      l := list.New()
      l.PushFront(4)
      l.PushFront(5)
      l.PushFront(7)
      l.PushFront(6)
      l.PushFront(5)
      l.PushFront(4)
      l.PushFront(5)
      l.PushFront(7)
      l.PushBack(9)
      l = removeDuplicate(l)
      for e := l.Front(); e != nil; e = e.Next() {
          fmt.Println(e.Value)
      }
  }
  func removeDuplicate(l *list.List) *list.List {
      sMap = make(map[int]bool)
      for e := l.Front(); e != nil; e = e.Next() {
          m := e.Value.(int)
          fmt.Println("VALUE : ", m)
          if sMap[m] == true {
              fmt.Println("Deleting ", e.Value)
              l.Remove(e)
          } else {
              fmt.Println("Adding New Entry", e.Value)
              sMap[m] = true
          }
      }
      return l
  }
  </code></pre>
  
  <p>The above code iterates through the list only till the first removal. I am trying to remove the element while iterating through the same list. That is the reason why it is not working. Could anyone suggest an list iterator in golang?</p>