On 22 mai, 18:56, Mensanator <[EMAIL PROTECTED]> wrote: > On May 22, 10:30 am, Nick Craig-Wood <[EMAIL PROTECTED]> wrote: > > > > > Dave Parker <[EMAIL PROTECTED]> 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?
Nope. Both are treated as pattern matching. The first one binds X because it's by that time a free variable, the second fails because it doesn't match. > That's inconsistent. That's consistent when you understand how Erlang works. > No wonder nobody uses erlang. Strange enough, it seems that more and more developpers and company start to look at Erlang as a possible solution to massive scaling problems. > Why isn't erlang smart, like Python, and avoid such confusion? Erlang *is* smart. It's just totally different from Python. And there's no confusion here (except on your side...). -- http://mail.python.org/mailman/listinfo/python-list