Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^4: Recap: The Future of Perl 5

by Ovid (Cardinal)
on Aug 24, 2018 at 13:44 UTC ( [id://1221031]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Recap: The Future of Perl 5
in thread Recap: The Future of Perl 5

The point of optional, gradual typing is to offer optional type safety. If I say "String", it must be defined and have an appropriate string value. Thus, undef would cause an exception. I would suggest that any non-overloaded reference would also throw an exception (No more printing out ARRAY(0x7fecea803280)). However, if stringification is directly overloaded, we'd have to respect the intent because printing DateTime->now is intended to work. The integer 42 would need to stringify to 42 because even Java allows this as the one case of operator overloading because it's so damned useful.

That being said, I could be smoking crack. And I'd want these to be exceptions, not warnings, because I find so many ways in which warnings can be overlooked.

Replies are listed 'Best First'.
Re^5: Recap: The Future of Perl 5
by chromatic (Archbishop) on Aug 24, 2018 at 18:27 UTC
    The point of optional, gradual typing is to offer optional type safety.

    This seems like a tricky feature in an allomorphic language like Perl, where intrinsics are polymorphic and operators are monomorphic.

    I would suggest that any non-overloaded reference would also throw an exception.

    I think there are cases where default stringification is desirable, and I suspect you'd have to go through each operator and each intrinsic to come up with a matrix of where it might be useful. This seems like a similar problem to smart match (though less so, because stringification for types should be a unary op, not a binary op).

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (5)
As of 2024-11-05 07:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    chatterbot is...






    Results (27 votes). Check out past polls.