Opposition to Python type hints
Opposition to Python type hints
Posted May 7, 2015 16:51 UTC (Thu) by niner (subscriber, #26151)In reply to: Opposition to Python type hints by ibukanov
Parent article: Opposition to Python type hints
Perl 6 throws errors for invalid method names if possible at compile time. I.e. when it knows about the types involved and no fallbacks are present. It's also very helpfully complaining about invalid arguments to methods and functions. And its type system allows very fine grained specification of types and signatures. E.g. it allows one to declare a function that takes a hash (dict in Python) as argument and requires that this hash contains certain keys. So in essence, it makes a combination of duck typing and static types possible and useful.
Posted May 7, 2015 17:42 UTC (Thu)
by ibukanov (subscriber, #3942)
[Link] (1 responses)
~/s> cat x.pl
my $a = 10;
if ($a) {
No warnings or errors about undeclared $b. What did I miss?
Posted May 7, 2015 17:49 UTC (Thu)
by niner (subscriber, #26151)
[Link]
my @sorted = sort { $a <=> $b } @unsorted;
Try your example with $x and $y and you'll get:
~> perl x.pl
Yes, that's surprising behavior and it's one of the reasons for Perl 6 being a breaking change. Of course, $a and $b are not exactly good variable names anyway :)
Opposition to Python type hints
use strict;
print "OK\n";
} else {
print $b . $b . "\n";
}
~/s> perl -w x.pl
OK
Opposition to Python type hints
Global symbol "$y" requires explicit package name at x.pl line 6.
Global symbol "$y" requires explicit package name at x.pl line 6.
Execution of x.pl aborted due to compilation errors.