<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 10/09/2013 06:48 PM, Terry Reedy
      wrote:<br>
    </div>
    <blockquote cite="mid:l341da$1fv$1@ger.gmane.org" type="cite">On
      10/9/2013 9:51 AM, Larry Hastings wrote:
      <br>
      <br>
      <blockquote type="cite">range() in
        <br>
        PyPy accepts keyword parameters, and in fact this works:
        <br>
        <br>
            range(9, step=2)
        <br>
        <br>
        That's way illegal in CPython.
        <br>
      </blockquote>
      <br>
      But Georg's point is that it does not have to be illegal in
      CPython. Range, in particular, does not have to be blazingly fast
      since it wraps loops rather than being in loops. I quite agree
      that it would be better to fix most functions.<br>
    </blockquote>
    <br>
    First, if you're proposing to change the signature of range()...
    well, good luck.  Any proposals I made like that got shot down
    almost immediately.  I <i>think</i> Guido said somewhere "range
    isn't changing.  deal with it.", though I admit I don't have a
    reference for that handy.<br>
    <br>
    Also, if you're suggesting "change the semantics of builtins to get
    rid of positional-only parameters",  I've got a different example
    for you: the dict constructor, which <i>must</i> accept a single
    optional positional-only parameter.  The only way to simulate that
    in Python code is with *args, but now introspection on that function
    will be misleading, because the dict constructor doesn't accept more
    than one positional-only argument.<br>
    <br>
    And, as Georg suggests, these niggling inconsistencies are the
    hobgoblins of my small mind.<br>
    <br>
    <br>
    <i>/arry</i><br>
  </body>
</html>