Python and Flaming Thunder

Mel mwilson at the-wire.com
Thu May 22 14:46:57 EDT 2008


Mensanator wrote:

> On May 22, 10:30 am, Nick Craig-Wood <n... at craig-wood.com> wrote:
>> Dave Parker <davepar... at flamingthunder.com> wrote:
>> > But after getting input from children and teachers, etc, it started
>> > feeling right.
>>
>> > For example, consider the two statements:
>>
>> > x = 8
>> > x = 10
>>
>> > The reaction from most math teachers (and kids) was "one of those is
>> > wrong because x can't equal 2 different things at the same time".
>>
>> This is a common feature in functional languages...
>>
>> Eg
>>
>> Erlang (BEAM) emulator version 5.6.2 [source] [smp:2]
>> [async-threads:0] [kernel-poll:false]
>>
>> Eshell V5.6.2  (abort with ^G)
>> 1> X = 8.
>> 8
>> 2> X = 10.
>> ** exception error: no match of right hand side value 10
>> 3>
>>
>> That error message is the erlang interpreter saying "Hey I know X is
>> 8, and you've said it is 10 - that can't be right", which is pretty
>> much what math teachers say too...
> 
> Are you saying that erlang treats 1> as an assignment, yet
> treats 2> as a comparison?
> 
> That's inconsistent. No wonder nobody uses erlang.

In Prolog terms, they're both unification.  If X has never been defined you
can define it as 8 with no chance of contradicting anything.  Once X is 8,
the proposition "X is 10" is false.

I act as though Erlang thinks the same. My Erlang chops aren't as good as my
Prolog chops were.

        Mel.





More information about the Python-list mailing list