HaloO,
Larry Wall wrote:
On Wed, Apr 16, 2008 at 04:29:23PM +, [EMAIL PROTECTED] wrote:
: my Dog $spot = .new();
:
: to
:
: my $Spot = Dog.new();
:
: when you remove the declaration.
You'd also break multiple dispatch rather badly...
Sorry, why that? Isn't the dispatch on the dynamic
HaloO,
John M. Dlugosz wrote:
Any strong feeling about order-of-evaluation issues?
And short-circuiting of the implicit and. I think
f() < g() < h() is re-written by the compiler as
f() < ($temp = g()) && $temp < h(). Note that C#
defines the order of evaluation as strictly left to
right. And
sub GetType (-->Type) { ... }
my ::RunTimeType := GetType;
This is clearly permitted by the prose, that " ::x may be bound to any object
that does the Abstraction role, such as a typename, package, module, class,
role, grammar, or any other protoobject with .HOW hooks."
But the syntax might t
HaloO,
John M. Dlugosz wrote:
Variance?
Yeah, the standard set of co-, contra-, in- and bivariance ;)
Assume A <: B being subtypes. Then how should Foo[A]
and Foo[B] relate?
Foo[A] <: Foo[B] # covariance
Foo[B] <: Foo[A] # contravariance
Invariance means there's no relation at all
HaloO,
John M. Dlugosz wrote:
sub GetType (-->Type) { ... }
my ::RunTimeType := GetType;
I think my declares value variables which means you need
a sigil:
my ::RunTimeType $ := GetType;
and of course you capture the runtime type of the
return value of GetType. If you write that as
m
Is there something for perl analogous to the sort of formal presentation
seen in e.g., Robin Milner's "Definition of Standard ML" ?
Is there any confluence between things perl and things found in the
literature on partial evaluation (e.g., John Launchbury's thesis, papers
etc.) ?
Thanks!
-
Hugh
On Wed, Apr 16, 2008 at 11:19:33PM -0400, Bob Rogers wrote:
> Pardon a lurker, but I'm not sure I understand the point of this. In:
>
> if $x < $y < $z { ... }
>
> I would expect a sensible compiler short-circuit the "$x < $y" part, and
> indeed the "Chained comparisons" section of S03 (ve
HaloO,
John M. Dlugosz wrote:
First, consider the stated examples for Generic type parameters, from
the passage which defines the terminology in S02:
I fear we need a rigorous definition of generic first.
sub max (Num ::X @array)
> {
>push @array, X.new();
> }
Here you have a nice exam
HaloO,
Mark J. Reed wrote:
Type checking in both js2/ecma4 and p6 is not merely documentation.
It is enforced, but only if present. This is a tricky thing to
achieve, which is why I suggested reading the js stuff to see how they
went about it.
I like the 'like' operator that does a structural
HaloO,
[EMAIL PROTECTED] wrote:
You should look at Common Lisp. it's definition of "optional typing"
> is that if you take a correct program and remove all the type
> declarations, then it still works correctly, although it may be
> significantly less efficient. Larry and i have discussed this
On Thu, Apr 17, 2008 at 09:24:47AM +0200, TSa wrote:
> HaloO,
>
> Larry Wall wrote:
>> On Wed, Apr 16, 2008 at 04:29:23PM +, [EMAIL PROTECTED] wrote:
>> : my Dog $spot = .new();
>> : : to
>> : : my $Spot = Dog.new();
>> : : when you remove the declaration.
>>
>> You'd also break multiple dispat
On Sun, Apr 13, 2008 at 09:00:08PM -, John M. Dlugosz wrote:
:
: :(:who($name), :why($reason)) := (why => $because, who => "me");
:
: What do the symbols $name and $reason refer to? Are they names already in
scope?
That would be the intent, yes. Mind you, it seems like something only a
cr
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote:
Why the complicated sig? Note that the left sequential definition
enforces that ($a + $b) + $c dispatches to a version of + with the
return type of the lhs addition. That is you need lots of overloaded
versions of listfix +. Nonetheless I would li
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote:
HaloO,
John M. Dlugosz wrote:
Variance?
Yeah, the standard set of co-, contra-, in- and bivariance ;)
Assume A <: B being subtypes. Then how should Foo[A]
and Foo[B] relate?
Foo[A] <: Foo[B] # covariance
Foo[B] <: Foo[A] # contravar
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote:
I guess not. But
::Newname ::= OldTypeName;
should work. The type system is a runtime overlay to
the value system. This is reflected in the source by
putting types and values into different syntactic slots.
You cannot mix these!
But Newname
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote:
Which is no problem if ::T defines it in the lexical scope. Any
outer definition is hidden. I guess re-using ::T in the same scope
again for capturing a new type is an error. Just like redeclaring
a value variable. BTW is
You appear to be saying t
From: "Patrick R. Michaud" <[EMAIL PROTECTED]>
Date: Thu, 17 Apr 2008 07:22:20 -0500
On Wed, Apr 16, 2008 at 11:19:33PM -0400, Bob Rogers wrote:
> . . . but IIUC "and" is not short-circuiting.
"and" is short-circuiting.
Aha. I was misled by the presence of "andthen", and was too
On Thu, Apr 17, 2008 at 03:41:06PM -0500, John M. Dlugosz wrote:
> The multi-dictionary search didn't show this usage of covariance and
> contravariance. But the series of articles on Type Theory in JOT uses
> it to mean "in the same direction" and "in the opposite direction" but
> doesn't d
OK, what is the proper use of ::?CLASS ? Say in a role you want to take an
argument of the same class as the final class, or explicitly declare $self.
S12 gives an example:
method doit (::?CLASS $self: $a, $b, $c) { ... }
but this CONTRADICTS the idea that using the :: sigil in a declaration
19 matches
Mail list logo