On 2/10/2013 1:45 PM, Rick Johnson wrote:
On Sunday, February 10, 2013 2:39:21 AM UTC-6, Terry Reedy wrote:
While it is true that sorted(iterable) is essentially

def sorted(iterable):
    tem = list(iterable)
    tem.sort
    return tem

the body is not an expression and cannot be substituted in an
expression.

Yes but the body can be compressed to this single line: "list(iterable).sort()"

That single line now evaluates to None, so that does not work.

Even if list mutation methods returned the list, which they do not and
for good reason,

I am not proposing that in-place modification return the object.

It seems to me that you are, as that is the only way for 'list(iterable).sort()' to replace 'sorted(iterable)', as you proposed both originally and above.

The reason sorted(iterable) was added is 'list(iterable).sort()', which newbies would try, *does not work*. Sorted was added so people would not have to write

tem = list(iterable)
tem.sort()
<statement using tem>
del tem

as they did previously, and instead could write

<statement using sorted(iterable)>

Reversed was added not only for the same reason, but also to avoid the temporary list altogether when not actually needed, which it often or usually is not.

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to