Skip to content

Comment on Clojure core.async and Go: A Code Comparisonparent

Comments

I dunno, but I can do it in go :-P

  func generator(values ...interface{}) func() interface{} {
    c := make(chan interface{}, len(values))
    for _, v := range values {
      c <- v
    }
    return func() interface{} { return <-c }
  }

"The problem with using a goroutine as a generator is that if you abandon it, it will not get garbage collected."

It's also slow.

https://groups.google.com/forum/#!topic/golang-nuts/v6m86sTR...

My design relies on pre-loading the channel's buffer and doesn't use a goroutine.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.