a much better example
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 427f864..0497d45 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -596,24 +596,13 @@
    its :meth:`next` method; if the value returned is equal to *sentinel*,
    :exc:`StopIteration` will be raised, otherwise the value will be returned.
 
-   Example usage: ::
+   One useful application of the second form of :func:`iter` is to read lines of
+   a file until a certain line is reached.  The following example reads a file
+   until ``"STOP"`` is reached: ::
 
-      >>> iterator = iter(range(10))
-      >>> iterator
-      <listiterator object at 0x86b50>
-      >>> iterator.next()
-      0
-      >>> iterator.next()
-      1
-      >>> def my_generator():
-      ...     for i in range(10):
-      ...             yield i
-      ...
-      >>> iterator = iter(my_generator().next, 7)
-      >>> iterator
-      <callable-iterator object at 0x86bb0>
-      >>> list(iterator)
-      [0, 1, 2, 3, 4, 5, 6]
+      with open("mydata.txt") as fp:
+          for line in iter(fp.readline, "STOP"):
+              process_line(line)
 
    .. versionadded:: 2.2