(I know you know all of this; I belabor it only for the sake of other people reading who may not know, and because I think most of the talk about the Perl 5 type system is incorrect in subtle and imprecise ways.)

Monomorphic has nothing to do with it.

It has everything to do with it. Perl 5's type system expresses types by operators, not values. There is no implicit conversion occurring because the typed monomorphic operators are all explicit. (Without an operator, you have only a single-term expression.

Would you say that the C macro:

#define INTEGER_ADD(a, b) (int)(a) + (int)(b)

... performs implicit conversion because when you use it, you don't see the casts?

z = INTEGER_ADD(x, y);

Would you not characterize this code as clunky?

my $z = "$x" . "$y";

To anyone who understands the concatenation operator, the explicit stringification is unnecessary because the operator explicitly expresses the type of the values it expects from its operands.


In reply to Re^15: Strong typing and Type Safety.A multilanguage approach (implicit) by chromatic
in thread Strong typing and Type Safety.A multilanguage approach by nikosv

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.