I’ve seen that a new “range-over-func” experiment is available with Go 1.22. In this article, I took a closer look and evaluated the feature for myself.

  • icb4dc0de
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    9 months ago

    I can imagine how…exhausting these discussions were 😅

    Apart from the more synthetic examples and the obvious things like iterating custom containers - I understand your argument that this is not a every day use case but there are certainly some use cases - there are things like:

    • iterating a bufio.Scanner
    • iterating SQL results
    • streaming chunked HTTP results

    That can benefit from the range-over-func approach.

    Furthermore there’s another “class” of tasks that are quite a good fit: generators 😍 Think of an infinite slice of random numbers or Fibonacci numbers or prime numbers…all of this can be expressed as a function you can iterate and “just stop” as soon as you have enough.

    Probably this gives you an idea what else the whole experiment is good for 😉

    Edit: there’s for instance a Python library letting you generate the holidays of a state for the next 1000 years based on some algorithm without having the data pre-calculated/stored anywhere but you can iterate/filter/… whatever you want