Re: Proposal: is defined trait, is typed trait, traits pragma.

2005-08-11 Thread TSa
HaloO, Autrijus Tang wrote: The purpose is that we don't have to be strong typists to enjoy Strong Typing. To make Perl6 easier to type, and easier to Type. Great! You, if not solve, but at least aim at relieving the pain caused by the 'proliferation of type parameters' problem. Consider me

Re: Translating (or at least parsing) Java interface definitions

2005-08-11 Thread Gaal Yahas
On Mon, Aug 08, 2005 at 10:25:26AM +0100, Tim Bunce wrote: Anyone done any work on parsing Java interface definitions? And, ideally, translating them into roughly equivalent Perl 6? I wrote something that did this with Parse::RecDescent. Unfortunately, I don't own the code. For my purposes I

Typed type variables (my Foo ::x)

2005-08-11 Thread Stuart Cook
Hi, What's the current meaning of type annotations on type-variables? For example, if I say... my Foo ::x; ...which of these does it mean? a) ::x (=) ::Foo (i.e. any type assigned to x must be covariant wrt. Foo) b) ::x is an object of type Foo, where Foo.does(Class) c) Something else? I

Classes as special undefs

2005-08-11 Thread Stuart Cook
On 11/08/05, Larry Wall [EMAIL PROTECTED] wrote: I'll have to think about the rest of your proposal, but I was suddenly struck with the thought that our platonic Class objects are really forms of undef: say defined IO; # prints 0 That is, we already have an object of type IO that

Re: Typed type variables (my Foo ::x)

2005-08-11 Thread Autrijus Tang
On Thu, Aug 11, 2005 at 08:02:00PM +1000, Stuart Cook wrote: What's the current meaning of type annotations on type-variables? For example, if I say... my Foo ::x; ...which of these does it mean? a) ::x (=) ::Foo (i.e. any type assigned to x must be covariant wrt. Foo) b) ::x is

Re: Classes as special undefs

2005-08-11 Thread Brent 'Dax' Royal-Gordon
Stuart Cook [EMAIL PROTECTED] wrote: On 11/08/05, Larry Wall [EMAIL PROTECTED] wrote: I'll have to think about the rest of your proposal, but I was suddenly struck with the thought that our platonic Class objects are really forms of undef: say defined IO; # prints 0 That is, we

Re: Classes as special undefs

2005-08-11 Thread Stuart Cook
On 11/08/05, Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] wrote: One that you missed was that this syntax: my Dog $spot .=new(); Falls out of it quite naturally. Actually I tried to mention that indirectly, but I'm glad you explicitly mentioned it. On the other hand, there are other

Re: Typed type variables (my Foo ::x)

2005-08-11 Thread TSa
HaloO, Autrijus Tang wrote: On Thu, Aug 11, 2005 at 08:02:00PM +1000, Stuart Cook wrote: my Foo ::x; a) ::x (=) ::Foo (i.e. any type assigned to x must be covariant wrt. Foo) b) ::x is an object of type Foo, where Foo.does(Class) c) Something else? My current reading is a) -- but only if

Re: Classes as special undefs

2005-08-11 Thread Autrijus Tang
On Thu, Aug 11, 2005 at 08:53:47PM +1000, Stuart Cook wrote: On 11/08/05, Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] wrote: One that you missed was that this syntax: my Dog $spot .=new(); Falls out of it quite naturally. Actually I tried to mention that indirectly, but I'm glad

Re: Classes as special undefs

2005-08-11 Thread TSa
HaloO, Autrijus Tang wrote: What about this? OK, let's play some manual type inferencing ;) my $spot = Dog; $spot.does(Item of Dog), that means what ever the name Dog represents was stored or bound to $spot. defined($spot); # false!? true! Even for my $spot = ::Dog

Re: Classes as special undefs

2005-08-11 Thread Autrijus Tang
On Thu, Aug 11, 2005 at 04:47:49PM +0200, TSa wrote: OK, let's play some manual type inferencing ;) Note that $spot here is intended to be dynamic typed, i.e. not subject to inference. :-) my $spot = Dog; $spot.does(Item of Dog), that means what ever the name Dog represents was stored

Re: Classes as special undefs

2005-08-11 Thread TSa
HaloO, Stuart Cook wrote: On the other hand, there are other things that don't work quite so well: my Dog $spot; $spot.can('bark');# Not until he's instantiated... Are you objecting to the fact that it can't possibly return a valid method, or that it will inappropriately true/false

Re: Proposal: is defined trait, is typed trait, traits pragma.

2005-08-11 Thread Larry Wall
On Thu, Aug 11, 2005 at 10:47:35AM +0800, Autrijus Tang wrote: : Really this is about path of least resistance. Without inference, : we are asking the user to choose between: : : 1) Verbose annotation and type safety : 2) Convenience (no annotation) and unsafe behaviour : : Adding

Re: Classes as special undefs

2005-08-11 Thread Larry Wall
On Thu, Aug 11, 2005 at 04:47:49PM +0200, TSa wrote: : defined($spot); # false!? : : true! Even for my $spot = ::Dog because when my is evaluated the : name ::Dog has be be bound, AUTOLOADED or by whatever means become : available. What does binding have to do with definedness? In Perl 6

Re: Proposal: is defined trait, is typed trait, traits pragma.

2005-08-11 Thread Autrijus Tang
On Thu, Aug 11, 2005 at 09:22:27AM -0700, Larry Wall wrote: On Thu, Aug 11, 2005 at 10:47:35AM +0800, Autrijus Tang wrote: : Adding inference (is typed) to the mix massively sweetens the first : option, which would be a good thing. Only if the programmer can be taught to understand the

Re: my $pi is constant = 3;

2005-08-11 Thread Autrijus Tang
On Wed, Aug 10, 2005 at 12:41:17PM -0700, Larry Wall wrote: : If yes, what does it desugar to? : : my $pi is constant := 3; : my $pi is constant ::= 3; In this case it desugars to my $pi is constant = 3; :-) However, I wonder if the intention was to replace the Perl 5

Re: my $pi is constant = 3;

2005-08-11 Thread Larry Wall
On Fri, Aug 12, 2005 at 01:43:43AM +0800, Autrijus Tang wrote: : On Wed, Aug 10, 2005 at 12:41:17PM -0700, Larry Wall wrote: : : If yes, what does it desugar to? : : : : my $pi is constant := 3; : : my $pi is constant ::= 3; : : In this case it desugars to : : my $pi is

Re: Typed type variables (my Foo ::x)

2005-08-11 Thread Luke Palmer
On 8/11/05, TSa [EMAIL PROTECTED] wrote: HaloO, Autrijus Tang wrote: On Thu, Aug 11, 2005 at 08:02:00PM +1000, Stuart Cook wrote: my Foo ::x; a) ::x (=) ::Foo (i.e. any type assigned to x must be covariant wrt. Foo) b) ::x is an object of type Foo, where Foo.does(Class) c) Something

Re: $object.meta.isa(?) redux

2005-08-11 Thread Luke Palmer
On 8/10/05, Sam Vilain [EMAIL PROTECTED] wrote: On Wed, 2005-08-10 at 21:00 -0400, Joe Gottman wrote: Will there be an operator for symmetric difference? I nominate (^). That makes sense, although bear in mind that the existing Set module for Perl 6, and the Set::Scalar and Set::Object

Re: set questions -- Re: $object.meta.isa(?) redux

2005-08-11 Thread Luke Palmer
On 8/10/05, Flavio S. Glock [EMAIL PROTECTED] wrote: I wonder if infinite sets (recurrences) will be supported - then I'll move all(ext/Recurrence, ext/Span, ext/Set-Infinite) to Perl6::Container::Set::Ordered - cool. Note there is now a Set role. Emphasis on role. There will be a finite

Re: Set operators in Perl 6 [was Re: $object.meta.isa(?) redux]

2005-08-11 Thread Luke Palmer
On 8/10/05, Dave Rolsky [EMAIL PROTECTED] wrote: [changing the subject line for the benefit of the summarizer ...] On Wed, 10 Aug 2005, Larry Wall wrote: And now some people will begin to wonder how ugly set values will look. We should also tell them that lists (and possibly

Re: Set operators in Perl 6 [was Re: $object.meta.isa(?) redux]

2005-08-11 Thread Mark A. Biggar
Luke Palmer wrote: On 8/10/05, Dave Rolsky [EMAIL PROTECTED] wrote: [changing the subject line for the benefit of the summarizer ...] On Wed, 10 Aug 2005, Larry Wall wrote: And now some people will begin to wonder how ugly set values will look. We should also tell them that lists (and

Re: Set operators in Perl 6 [was Re: $object.meta.isa(?) redux]

2005-08-11 Thread Mark A. Biggar
Mark A. Biggar wrote: Luke Palmer wrote: On 8/10/05, Dave Rolsky [EMAIL PROTECTED] wrote: [changing the subject line for the benefit of the summarizer ...] On Wed, 10 Aug 2005, Larry Wall wrote: And now some people will begin to wonder how ugly set values will look. We should also tell

Re: my $pi is constant = 3;

2005-08-11 Thread Ashley Winters
On 8/11/05, Larry Wall [EMAIL PROTECTED] wrote: So either we have to bifurcate the concept into temporarily constant and permanently constant, or we force people to distinguish with ::= (or is constant('foo')), or we make some representations about the requirement for the compiler to optimize

Re: Set operators in Perl 6 [was Re: $object.meta.isa(?) redux]

2005-08-11 Thread Larry Wall
On Thu, Aug 11, 2005 at 08:25:23PM -0700, Mark A. Biggar wrote: : Mark A. Biggar wrote: : Small issue, what comparison operator do you use to determine : duplicates? For example (possibly pathological case): : : (undef but true) (+) (undef but false) : : Actually, I'm going to make a stab at