[Moscow.pm] Perl 6

Ivan Petrov i.petro.77.00 на gmail.com
Вт Окт 13 08:20:13 PDT 2015


>> какие ошибки программиста решают типы данных?

> Когда он пытается складывать и умножать то что числами не является и
> это известно ещё на стадии написания программы.

то есть кто-то может написать $a = $b + 'привет медвед';

и вы хотите эти ошибки контроллировать на стадии компиляции?

почему бы не контроллировать тогда такие ошибки:

$a = $b / $c;
        ^----- вот тут я хотел умножить, а написал разделить
               
черт, почему бы не ввести понятие "только умножающееся число" и тогда
компилятор будет мегаофигенно материться если кто-то попробует его
разделить?



>>> Всё ещё жду пример кода на Perl5, который показывает чем плоха типизация.
>> 
>> в Perl5 нет типизации и именно это прекрасно в Perl5.
>> как можно на Perl5 привести пример чем плоха типизация, для этого надо
>> написать на нем код с типами

> Приведи пример кода на Perl5, где типизация была бы злом.

еще раз

$a = 10;
$b = '20';
$c = $a + $b;

Вот типизация зло.

$b оказывается равно 20 потому что в коде написано
а так же $b может оказаться равным '20' потому что написано

$b = $dom->findnodes('//Path/To/b')->shift->getAttribute('value');


для того чтобы не ошибаться с конкатенацией vs сложением - в Perl
придумали два оператора: один для сложения, второй для конкатенации.

поэтому аргумент что дескать программист имел ввиду конкатенацию идут
вот туда же куда аргумент что программист имел ввиду деление, а не
умножение



Подробная информация о списке рассылки Moscow-pm