Python syntax in Lisp and Scheme
Dave Benjamin
ramen at lackingtalent.com
Thu Oct 9 05:13:57 EDT 2003
In article <799hb.4014$dn6.551 at newsread4.news.pas.earthlink.net>, Andrew Dalke wrote:
> Dave Benjamin:
>> Interestingly enough:
>>
>> "The language is strongly-typed, but without declarations. Types are
>> determined from context."
>> - http://ftp.cwi.nl/abc/abc.intro
>>
>> Sounds like type inference to me.
>
> Sound like dynamic typing to me. Python is strongly-typed
> but without declarations, and the type is determined as needed.
> But I don't know enough about ABC to authoritatively declare
> that it does/does not do type inferencing. My guess is that it
> does not.
Yeah, I'm sure you're right. Even though I've made the argument against
confusing static and strong typing myself many times, I still got caught off
guard myself. Doesn't "determined from context" sound a little different
from dynamic typing, though? I mean, to me, it reads like:
We don't declare types, ie.:
int i = 5
Instead, we determine them from context:
i = 5
What has the type, according to that language? The "i" or the "5"? How is
the type of "5" determined from context? Shouldn't it be "int", regardless of
context?
>> Also:
>>
>> "There is no GOTO statement in ABC, and expressions do not have
>> side-effects."
>> - http://homepages.cwi.nl/~steven/abc/teaching.html
>>
>> Hints both at the statement/expression dichotomy of Python and the issue
>> that side-effects make it difficult to reason about a program, one of the
>> most important assertions made by functional proponents (IMHO).
>
> I think you're reading too much into it. The example code
> doesn't look at all functional to me, as in (from the main page)
> ...
Nah, I think you're reading too much into my comment. I was just making an
observation. I don't think ABC is an FPL by a mile, from what I've read.
However, I *am* interested in things that people seem to value despite the
fact that they solve problems in sometimes radically different ways. Maybe
you don't see it, but I definitely see some parallels between the
idea of separating statements from expressions and the idea of separating
the imperative, mutating, side-effectful code from the immutable, declarative
functional, query-oriented, side-effect free.
I think there is a greater point to be made about all of this, and it has
something to do with time and change.
Dave
--
.:[ dave benjamin (ramenboy) -:- www.ramenfest.com -:- www.3dex.com ]:.
: d r i n k i n g l i f e o u t o f t h e c o n t a i n e r :
More information about the Python-list
mailing list