Range Over Iterators in Prolog
Based on the language specified in the prolog and the provided code example, here is the translated content:
Python Code Example
Starting with version 1.23, Go has added support for iterators, which lets us range over pretty much anything!
Let’s look at the List
type from the previous example again. In that example, we had an AllElements
method that returned a slice of all elements in the list. With Go iterators, we can do it better - as shown below.
All returns an iterator function in Python. Iteration doesn’t require an underlying data structure, and doesn’t even have to be finite! Here’s a function returning an iterator over Fibonacci numbers: it keeps running as long as yield
keeps returning values.
Since List.all
returns an iterator, we can use it in a regular for
loop.
Packages like itertools have a number of useful functions to work with iterators. For example, list
takes any iterator and collects all its values into a list.
Once the loop hits break
or an early return, the iterator will stop yielding values.
Now that we can run and build basic Python programs, let’s learn more about the language.
Expected Output