Time we switched to unicode? (was Explanation of this Python language feature?)
Terry Reedy
tjreedy at udel.edu
Wed Mar 26 00:30:21 EDT 2014
On 3/25/2014 8:12 PM, Steven D'Aprano wrote:
> On Tue, 25 Mar 2014 19:55:39 -0400, Terry Reedy wrote:
>
>> On 3/25/2014 11:18 AM, Steven D'Aprano wrote:
>>
>>> The thing is, we can't just create a ∑ function, because it doesn't
>>> work the way the summation operator works. The problem is that we would
>>> want syntactic support, so we could write something like this:
>>>
>>> p = 2
>>> ∑(n, 1, 10, n**p)
>>
>> Of course we can. If we do not insist on separating the dummy name from
>> the expression that contains it. this works.
>>
>> def sigma(low, high, func):
>> sum = 0
>> for i in range(low, high+1):
>> sum += func(i)
>> return sum
>
> There is no expression there. There is a function.
>
> You cannot pass an expression to a function in Python,
One passes an unquoted expression in code by quoting it with either
lambda, paired quote marks (Lisp used a single '), or using it in a form
that implicitly quotes it (that includes def statements). Unquoted
expressions in statements ultimately get passed to an internal functions.
> not in the sense I am talking about,
well, if you eliminate all the possibilities ...
> because expressions are not first-class objects.
The concept is not a class, and the Python stdlib does not have an
expression class. But people have written classes to represent the
concept. I used existing classes instead.
Expressions are not (normally) mathematical objects either.
(An exception is rewriting theory, or other theories, where strings
representing expressions or WFFs (well-formed formulas) are the only
objects.) Mathematicians quote expression strings by context or
positiion. The sigma form is one of many examples.
--
Terry Jan Reedy
More information about the Python-list
mailing list