вторник, 22 июля 2008 г.

Ruby-бяки

Посмотрите на эти четыри строчки на языке Ruby и подумайте, что же они делают?

z = x + y
z=x + y
z=x+y
z = x +y

Думаете они все делают одно и тоже? Как бы не так!

Видимо создателю Ruby очень хотелось, чтобы в его языке можно было написать вместо:
print("Hello, World!");

Просто:
print "Hello, Board!"

Без всяких скобочек и точек запятых. Создатель этот обладал хорошим абстрактным мышлением и, видимо, однажды, пытаясь объединить множество сущностей под одну изящную составляющую он подумал, что print - это функция и почему бы не дать всем функциям вызываться без скобочек?

Таким образом если в программе заведена функция plot(x,y) то вызывать ее можно так:

plot x,y

Таким образом, если мы пишем:

z = x +y

То интерпритатор попытается вызвать функцию x с параметром +y, т.е. x(+y).
Поэтому плюсы в Ruby нужно обрамлять пробелами.

Вот так вот неожидано.

Комментариев нет: