Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^4: Definition of numerically equal and rationale for 'you' == 'me'

by JavaFan (Canon)
on Mar 03, 2012 at 00:31 UTC ( [id://957573]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Definition of numerically equal and rationale for 'you' == 'me'
in thread Definition of numerically equal and rationale for 'you' == 'me'

The elegant dividend that Perl derives from its lack of operator ambiguity
Really? Can you describe what &, |, ++ and <> do, without taking the value of their operands into account?
Yes, overloading + to mean either string concatenation or numeric addition is a language design blunder IMHO. I'm often saddened by how many language designers were seduced by this unfortunate misfeature.
I don't call it a misfeature. It's a design decision whether you allow multiple dispatch or not. There are pro and cons, and judgement should be made in context of the entire language. If your typing system is different, multiple dispatch makes more sense (perl6 will have multiple dispatch, although I don't know whether it will have it for build in operators). Perl5 doesn't have much of it, but do note the mentioned operators. And it allows operators to be overloaded. If I want to make + to concatenate strings, I can, quite simply:
use 5.010; use overload '""' => sub {${$_[0]}}, '+' => sub {bless\do{my$o=${$_[$_[2]]}.$_[1-$_[2]]}}; BEGIN {overload::constant q => sub {bless \do {my $v = $_[0]}}} my $x = "Hello"; my $y = "world"; my $z = "" + uc $x; say $x + ", " + $y; say $z + $z; __END__ Hello, world HELLOHELLO
(Implementation not complete)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://957573]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2024-04-20 01:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found