On Tuesday, 9. November 2010 01:45:52 Mason Kramer wrote:
I have to disagree here. Arrays and Hashes may be about storage (I don't
think they are, though, since you can change the (storage) implemenation of
an Array or Hash via its metaclass and it can still remain an Array or
Hash).
What I
HaloO,
On Monday, 2. August 2010 20:02:40 Mark J. Reed wrote:
On Sun, Aug 1, 2010 at 6:02 PM, Jonathan Worthington jonat...@jnthn.net
wrote:
No, given-when is smart-matching. The RHS of a smart-match decides what
happens. If you do True ~~ 1 then that's 1.ACCEPTS(True) which is going
to
HaloO,
On Saturday, 31. July 2010 20:47:49 Patrick R. Michaud wrote:
On Sat, Jul 31, 2010 at 10:56:47AM -0600, David Green wrote:
It's not unreasonable, especially if that's what you expect.
But it's even more reasonable to expect this to work:
given $something {
when
HaloO,
On Saturday, 31. July 2010 18:56:47 David Green wrote:
On 2010-07-31, at 1:33 am, Moritz Lenz wrote:
sub test() { True };
given 0 { when test() { say OH NOEZ } }
I don't think it's unreasonable to expect the output to be OH NOEZ.
How does this relate the given to the when? If I get
On Wednesday, 28. July 2010 05:12:52 Michael Zedeler wrote:
Writing ($a .. $b).reverse doesn't make any sense if the result were a
new Range, since Ranges should then only be used for inclusion tests (so
swapping endpoints doesn't have any meaningful interpretation), but
applying .reverse
HaloO Mr Castagna
On Friday, 5. February 2010 16:43:26 you wrote:
I see I'm going out of the scope of this list. I apologize for spamming,
but please continue to post here or send me by PM every information about
Perls 6 types.
I'm delighted to have you interested in Perl 6. I know your book
HaloO Mr Castagna,
On Friday, 5. February 2010 23:13:25 you wrote:
Actually I noticed an old post you did on this list 5 years ago. It
contained the following drawing
Yeah it's a long time. And I've sort of lost interest in type theory.
But then I tried to persuade the list of a sophisticated
HaloO,
On Tuesday, 3. November 2009 17:13:22 Carl Mäsak wrote:
That would make statement modifier for loops less useful. For those,
there's nowhere to put the lambda arrow.
++$_ for @things;
I think this is resolved with the is ref binding which
implies that the thingy that is bound to $_
HaloO,
On Friday, 23. October 2009 02:27:00 Darren Duncan wrote:
Thinking further, my interpretation of what you said above is that the
Rational role is now basically saying that a number is represented in terms
of numerator/denominator and that certain operators are supported, but now
it is
HaloO,
On Sunday, 25. October 2009 01:38:21 Martin D Kealey wrote:
Sounds like going back to static typing -- which does sometimes have some
advantages.
Well, you can also consider it dynamic. The important point is
that it is a constraint on allowed types e.g. in the sig of a sub
or on a
HaloO,
On Thursday, 22. October 2009 20:58:15 I wrote:
The class Dogwood however might be written as
class Dogwood does Dog[Dogwood:] does Wood[Dogwood:]
{
method Dog {...}
method Wood {...}
method bark {...}
}
On #perl there was the question if any type
HaloO,
On Thursday, 22. October 2009 18:31:16 I wrote:
The invocant slot of the role signature is sort of implied in the spec
already! I also like this because a type in Perl 6 is then always
written as SomeRole[SomeClass:]. Classes without explicit roles are
Any[SomeClass:] and untyped is
HaloO,
On Wednesday, 21. October 2009 12:40:06 Mark J. Reed wrote:
Rather than disallow the composition, I'd say that any class, role, or
object that does both roles must override the method in question.
The problem that Ovid posed needs to be resolved in the dispatch
tables seen in certain
HaloO,
On Tuesday, 20. October 2009 18:35:36 David Green wrote:
So what the OP wants to do is declare a method that is available on
all those invocants - and only those invocatnts - which do all of
roles X, Y, and Z. Granted, you can declare a new role XandYandZ
that does X, Y, and Z,
HaloO,
On Wednesday, 14. October 2009 12:18:30 Ovid wrote:
You *could* (this wasn't explained in the paper) extract those
methods into C::x(), check your callers and dispatch as appropriate, but
that would get very problematic, particularly with roles composed of other
roles.
I consider the
On Thursday, 27. August 2009 23:58:51 Jon Lang wrote:
It might also be nice to have a stringifying version; perhaps 'be',
using the same everything's an acronym naming convention used by
other stringifying operators (e.g., 'lt' is less than, 'le' is 'less
than or equal to', 'leg' is less than,
HaloO,
On Friday, 27. March 2009 12:57:49 Daniel Ruoso wrote:
1 - multi infix:+(Set $set, Num $a)
This would return another set, with each value of $set summed with $a.
I think that this mixed case should numify the set to
the number of elements to comply with array semantics.
infix:+ should
On Tuesday, 24. March 2009 05:47:12 Darren Duncan wrote:
If you're going for sciencey or mathey illustrations, then I think its
important to include something that speaks quantum physics in there, since
quantum superpositions aka Junctions are one of the big central user
features that Perl 6
HaloO,
On Tuesday, 17. March 2009 10:25:27 David Green wrote:
That is, it would return a Junction of Str, not a Str. So the
question is how to get something that returns an expression to the
effect of:
'any(' ~ $choice.eigenstates.«perl.join(',') ~ ')'
say $choice.perl
...which
On Friday, 27. February 2009 07:42:17 Darren Duncan wrote:
I was thinking that Perl 6 ought to have a generic interval type that is
conceptually like Range, in that it is defined using a pair of values of an
ordered type and includes all the values between those, but unlike Range
that type is
On Tuesday, 24. February 2009 07:30:05 Carl Mäsak wrote:
my $foo is limited(100..200);
$foo = 5; # really does $foo = 100
Sounds like a good idea for a CPAN module. You can already do
something similar with the subset keyword, though:
subset Percentage of Int
On Tuesday, 24. February 2009 17:59:31 Larry Wall wrote:
So it might be better as a (very tight?) operator, regardless of
the spelling:
$x ~~ $y within $epsilon
This is a pretty add-on to smartmatch but I still think
we are wasting a valueable slot in the smartmatch table
by making
On Friday, 13. February 2009 20:30:24 Larry Wall wrote:
While taking a shower I refined the design somewhat in my head,
thinking about the ambiguities in package names when you're redefining.
By my previous message, it's not clear whether the intent of
multi package Foo::Bar {...}
is to
On Tuesday, 6. January 2009 22:01:36 Jon Lang wrote:
item($x) # Dwimmey use of item context.
IIRC this is the same as $$x, right? Or does that
extract the invocant slot without dwimmery?
list($x) # Dwimmey use of list context.
hash($x) # Dwimmey use of hash context.
$x._ # the
On Wednesday, 1. October 2008 21:54:12 [EMAIL PROTECTED] wrote:
If you apply an assignment operator to a protoobject, it is assumed that
you are implementing some kind of notional reduction to an accumulator
-variable. To that end, the base operator is dropped and a simple
-assignment is
HaloO,
On Sunday, 5. October 2008 04:23:42 Darren Duncan wrote:
Note that just as integers are naturally radix independent, the unlimited
rationals should be too, and the latter can compactly represent all
rationals as a triple of integers corresponding roughly to a (normalized)
[mantissa,
On Sunday, 14. September 2008 16:08:19 Patrick R. Michaud wrote:
So, how does one get an object to pretend to be a value type for
purposes of assignment?
I think a straight forward approach is to overload the
assignment operator on the actual types of the lhs and
rhs. The dispatch target than
HaloO,
On Thursday, 4. September 2008 03:39:20 Larry Wall wrote:
Another potential issue is that CATCH doesn't distinguish exceptions
coming from the current block from those coming from the subcall to a().
So it could end up returning Failure from the current block when
you intended to force
On Monday, 18. August 2008 20:38:05 Patrick R. Michaud wrote:
I would somewhat expect
a reference to be instead handled using a statement like
$foo[1] := $bar;
Comments and clarifications appreciated.
I would also opt for copy semantics whenever = is used
for assignment. But it seems to
HaloO,
On Saturday, 9. August 2008 01:32:35 John M. Dlugosz wrote:
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote:
If such a ReturnCapture could also be
preliminary of some kind, then lvalue subs could be lazily resumed when
the rvalue comes in.
Can you elaborate on that? I don't
HaloO,
I know that the hot phase of the operator discussions are over.
But here's a little orthogonalizing idea from my side. The observation
is that * can be regarded as repeated addition: 5 * 3 == 5 + 5 + 5
and ** as repeated multiplication. Now imagine having a meta_postfix:*
that gives +* as
HaloO,
On Thursday, 26. June 2008 18:46:25 Larry Wall wrote:
Neither is nor does is quite right here, because the mathematicians
have seen fit to confuse representation semantics with value semantics. :)
Hmm, but the uppercase types should hide the representation type.
IOW, there's only one
HaloO,
On Monday, 16. June 2008 10:03:13 Ovid wrote:
--- TSa [EMAIL PROTECTED] wrote:
... why do you think that
the way to get at the constraint programming paradigm are the subset
type definitions?
Because I can't think of any other way to do it :)
So I´ll try to come up with some
HaloO,
On Saturday, 14. June 2008 18:43:05 Daniel Ruoso wrote:
Moritz convinced me that there's actually no real reason to support
$nonlist.listmethod
I wouldn´t do that either. But I come to that conclusion from the
line of thought that it is generally a bad idea to block an Any
slot in a
HaloO,
Autrijus Tang wrote:
Yes, I'm aware of Theta's static where clauses, but Perl 6's where
clause is much more dynamic and almost always undecidable.
I know, but what does that buy the programmer? I see a type system
as support of a declarative programming style. Thus the dynamic part
of
HaloO,
Luke Palmer wrote:
On 8/3/05, Aankhen [EMAIL PROTECTED] wrote:
On 8/3/05, Piers Cawley [EMAIL PROTECTED] wrote:
So how *do* I pass an unflattened array to a function with a slurpy parameter?
Good question. I would have thought that one of the major gains from
turning arrays and
HaloO,
Luke Palmer wrote:
On 8/1/05, Ingo Blechschmidt [EMAIL PROTECTED] wrote:
In general, (@foo, @bar) returns a new list with the element joined,
i.e. @foo.concat(@bar). If you want to create a list with two sublists,
you've to use ([EMAIL PROTECTED], [EMAIL PROTECTED]) or ([EMAIL
HaloO,
Piers Cawley wrote:
By the way, if flattening that way, what's the prototype for zip? We can after
all do:
zip @ary1, @ary2, @ary3, ... @aryn
How about
sub zip( List [EMAIL PROTECTED] ) {...}
a slurpy List of Array of List. The return value is a
not yet iterated Code object
HaloO,
in case someone might be interested, here is my more or less complete
idea of the Perl 6 type lattice as ASCII art.
Enjoy. Comments welcome.
::Any
...| ...
HaloO,
Autrijus Tang wrote:
All this led us to think about whether (my foo) can be merely treated
the same as (my Code $foo). The mutable form will enable convenient
notations such as:
I think (my Code $foo) should be an error on the same reason as
(my Array $foo) is an error. A $var can
HaloO,
Ingo Blechschmidt wrote:
Is this a bug in S29 or will this be feature removed from Perl 6
and you'll have to say (for example)
use listops :mutating;
my @result = map { $_++; 42 } @array; # works now
Why not just
my @result = map - $_ is rw { $_++; 42 } @array; # works
HaloO,
Andrew Shitov wrote:
Is it possible to avoid significance of whitespaces?
Yes, with:
say zip .(@odd, @even);
Looks like a method and *is* a method in my eyes.
First zip is looked-up and then bound as block owner.
Arguments are of course two array refs to @odd and @even
HaloO,
Ingo Blechschmidt wrote:
Whitespace is significant:
say zip @odd, @even;# zip gets two arguments, result is
# 12345678.
say zip(@odd, @even); # zip gets two arguments, result is
# 12345678.
say zip (@odd, @even);
HaloO,
Andrew Shitov wrote:
TTS BTW, you didn't mean originally:
TTSsay zip (@odd), (@even); # prints 13572468 or 12345678?
That is exactly like with similar printing result of sub() call:
print sqrt (16), 5; # shout print 45.
That all hinges on the type of the symbol. I guess
HaloO,
Autrijus Tang wrote:
[..] For example, assuming argument types are unified in a single
phase, the example below does nothing useful:
sub equitype ((::a) $x, (::a) $y) { ... }
It won't not help even if we replace the implicit does with of:
sub equitype ($x of (::a), $y of
HaloO,
Autrijus Tang wrote:
On Mon, Aug 01, 2005 at 03:16:50PM +0200, TSa (Thomas Sandla�) wrote:
sub equitype ( ::a $x, a $y) { ... }
That's not a bad idea at all. I rather like it. I'd just still like an
explicit type-unifying parens around ::a, just so people won't say
I try to
HaloO,
Adriano Ferreira wrote:
Only
sub foobar (@args) { push @args, 42 }
would change @some_array in
foobar @some_array;
That is how I undestood that. Can someone confirm this belief?
I share your belief. It's up to others to confirm it. I just
want to add that I
Larry Wall wrote:
On Wed, Jul 27, 2005 at 06:28:22PM +0200, TSa (Thomas Sandlaß) wrote:
: Since we are in type hierachies these days, here's my from ::Any
: towards ::All version.
That's pretty, but if you don't move Junction upward, you haven't
really addressed the question Autrijus is asking
HaloO,
Autrijus Tang wrote:
[..much better explaination of the co/contra prob then mine skipped..]
Hence, my proposal is that Perl 6's generics should infer its variancy,
based on the signature of its methods, and derive subtyping relationships
accordingly.
Yes!! That would be great. But I
HaloO Michele,
you wrote:
On Wed, 27 Jul 2005, [ISO-8859-1] TSa wrote:
value to carry on a useless imaginary part. And
Complex should consistently return undef when compared
to other Nums or Complexes. And the Compare role
My 0.02+0.01i: in mathematics it is commonly used to write e.g. z3
HaloO Autrijus,
you wrote:
D) Make the return type observe both #2 and #3 at compile time,
using type variables:
sub id ( (::T) $x ) returns ::T { return($x) }
And this is a natural extension to guide the inferencer so it won't be
totally giving up on polymorphic functions such
PROTECTED]);# 4
Yep.
--
TSa (Thomas Sandlaß)
to mind...
--
TSa (Thomas Sandlaß)
Luke Palmer wrote:
On 7/26/05, TSa (Thomas Sandlaß) [EMAIL PROTECTED] wrote:
Piers Cawley wrote:
I would like to be able to iterate over all the
objects in the live set.
My Idea actually is to embedd that into the namespace syntax.
The idea is that of looking up non-negativ integer
HaloO,
Ingo Blechschmidt wrote:
I've probably misunderstood you, but...:
role Complex does Object {...}
Num does Complex;
# That should work and DWYM, right?
My 0.02: Complex should provide e.g. a + that, when
called with two Nums, doesn't bother the return
value to carry on a
Randal L. Schwartz wrote:
This is similar to the OS-9's gestalt tables, which got smarter as
the operating system had more features, but was a consistent way to
ask do we have a color monitor here?.
Is something like this already planned?
From my bubble in the Perl6 Universe this thing is an
HaloO,
Larry Wall wrote:
Yes. The only thing I don't like about it is that any() isn't an Any.
Maybe we should rename Any to Atom. Then maybe swap Item with Atom,
since in colloquial English you can say that pair of people are
an item.
Since we are in type hierachies these days, here's my
needs parens like ($condition ?? $value :: $other)
for preventing strange tokenization. OTOH would the barebone
structure of Perl6 revolve around ?? :: ::= () ; and namespace lookup.
--
TSa (Thomas Sandlaß)
must be in
scope there. The only requirement on the name is to not leak out into
public namespace.
The problem with
$?SELF.:foo()
is that people see that as a .: operator on the foo method.
Which is a *BIG* problem in an Operator Oriented Language!
--
TSa (Thomas Sandlaß)
of it. Essentially
rendering the method in question not applicable to the object anymore.
BTW, what is the inverse operation of bless? Expel?
--
TSa (Thomas Sandlaß)
! We can consider the sigils as lookup filters.
Regards,
--
TSa (Thomas Sandlaß)
chromatic wrote:
On Tue, 2005-07-19 at 18:47 +0200, TSa (Thomas Sandlaß) wrote:
I strongly agree. They should share the same namespace. Since
code objects constitute types they also share this namespace.
This means that any two lines of
class Foo {...}
roleFoo {...}
sub Foo
);
for some_values { say }
Hmm, looks somewhat unperlish :))
--
TSa (Thomas Sandlaß)
' $foo variable
or something else.
So to conclude, for reading they amount to the same result but through
different paths. But since the symbolic lookup might result in undef
the behaviour for writing is indeed a Very Different Thing.
@Larry, please correct if I gave wrong advice.
--
TSa (Thomas
is composed into
obviously is a subtype of Foo. What happens with this hidden payload if
the object changes its type such that it is no Foo anymore? E.g. by
undefining the slot .Foo::foo?
Regards,
--
TSa (Thomas Sandlaß)
call my own routine
I hope the initialisation in my also calls the overloaded
operator. But why shouldn't it?
--
TSa (Thomas Sandlaß)
detection. Note that the
ambiguity doesn't go away with a metric approach because there are no
other parameters that could compensate.
Regards,
--
TSa (Thomas Sandlaß)
the class Foo.
--
TSa (Thomas Sandlaß)
to think about that!
--
TSa (Thomas Sandlaß)
HaloO Larry,
you wrote:
On Tue, Jul 12, 2005 at 08:13:22PM +0200, TSa (Thomas Sandlaß) wrote:
: Actually it's a pitty, that the multi method call syntax isn't as
: rich as the single method call syntax where we have .?method, .+method
: and .*method. Something like (Snoopy, Mr_PotatoHead
=IN/ferraginaRS=IN/ferragina
I haven't check the relevance to Perl6 yet.
Has someone access to the STOC'99 paper?
--
TSa (Thomas Sandlaß)
by a good match.
--
TSa (Thomas Sandlaß)
the same as
multi sub foo (Num $x) {...}
--
TSa (Thomas Sandlaß)
of band? So .bar is always
invoked on the invocant of foo if we think that there is an implicit
$_ := $?SELF before the call to baz in foo. And I hope the binding
of $_ to $?SELF is a read-only binding!
--
TSa (Thomas Sandlaß)
Mark Reed wrote:
On 2005-07-12 12:22, TSa (Thomas Sandlaß) [EMAIL PROTECTED]
wrote:
I am also interested in the rationale behind the approach to manage MMD
my means of a metric instead of a partial order on the types.
Metric is a geometric concept which in my eyes doesn't fit type
theory
,
--
TSa (Thomas Sandlaß)
params, in assignments etc.
For research on the topic see e.g.
http://www.cs.washington.edu/research/projects/cecil/www/Papers/predicate-classes.html
--
TSa (Thomas Sandlaß)
into current scope
foo(1,2); # FooStuff[Int]::foo:(Int,Int)
foo(1,'blahh'); # type error?
Regards,
--
TSa (Thomas Sandlaß)
because of:
my $object = new Foo;
my $meta = $object.meta;
$meta.bar() # calls submethod but looks like method call
I guess the type of $meta is Ref of Class or somesuch.
Regards,
--
TSa (Thomas Sandlaß)
variable to the type
of it's argument the definition of make could be shortend to
sub make ( ::Type $value ) returns Type
{ ... }
and called like this
my $i = make(17);
which at least prevents type errors ;)
Regards,
--
TSa (Thomas Sandlaß)
in strings depending on the
Unicode level and index arithmetic of arrays. Some unification of the
underlying math would be nice, indeed. And that typically involves
starting from 0 and the positive remainder pointing into the day.
Regards,
--
TSa (Thomas Sandlaß)
= $x;
or the current form with :()
:(T) $x := $obj;
my T $y = $x;
Regards,
--
TSa (Thomas Sandlaß)
Larry Wall wrote:
On Wed, Jun 08, 2005 at 12:37:22PM +0200, TSa (Thomas Sandlaß) wrote:
: BTW, is - on the 'symbolic unary' precedence level
: as its read-only companion \ ?.
No, - introduces a term that happens to consist of a formal signature
and a block. There are no ordinary expressions
Damian Conway wrote:
Let's assume that op is overloaded for two completely unrelated types
A and B, which are both defining their respective identity elements
but !(A.identval =:= B.identval). How should the op multi method object
pick the correct one *without* looking at $value's type?
Your
Damian Conway wrote:
No. That needs to be:
method greet(FooClass ::class:) { say Hello!; }
(as implied by takes a class as its invocant in S12).
^
Ohh, does that mean that ::class can be used as a type
inside the body? E.g.
method template ( FooClass ::foo
be
helpfull.
PS: Of course this example also implies that each parameter's
declaration introduces a new lexical scope to its right.
Well the colloquial spec of your function is just 'it takes
two equal integers'. And the two element list (3,3) is a
subtype of it.
Regards,
--
TSa (Thomas Sandlaß)
the MMD object might actually be 'recompiled' during runtime when new
instances are added. That is similar to the automata behind regular
expressions.
Regards,
--
TSa (Thomas Sandlaß)
Edward Cherlin wrote:
That means that we have to straighten out the functions that can
return either a Boolean or an item of the argument type.
Comparison functions = = = != should return only Booleans,
I'm not sure but Perl6 could do better or at least trickier ;)
Let's assume that = =
understand how the knowledge about a pending assignment
eases the choice problem for the multi. Note that the choice of
assignment operator depends on the return value of the operator and
the type of which the lhs is undef.
Regards,
--
TSa (Thomas Sandlaß)
*pointy* :)
PS: A chain of refs can thus be reduced to the leaf lvalue with
([()] $rr) = 23; which stores a new value in $x. This might even
warrant the special case of ([] $rr) = 23;
--
TSa (Thomas Sandlaß)
. This
folds the identity value selection problem back into type-space
and it's runtime agent MMD.
--
TSa (Thomas Sandlaß)
Well,
does using - as blockref creator also give anonymous scalars?
$y = - $x { $x = 3; $x }; # $y:(Ref of Block of Int)
BTW, is - on the 'symbolic unary' precedence level
as its read-only companion \ ?. Are they pure macros?
--
TSa (Thomas Sandlaß)
in the snippet above it is explicitly coded.
Or do I completely misunderstand the distinction between
blocks and closures?
--
TSa (Thomas Sandlaß)
Piers Cawley wrote:
TSa (Thomas Sandlaß) [EMAIL PROTECTED] writes:
Piers Cawley wrote:
My preference is for:
Boo
Boo
Can't dereferene literal numeric literal 42 as a coderef.
How do you reach the second 'Boo'? Iff - does not create a Sub
but a Block instance then Luke's code can
to an undef
or some such.
$code($cc);
}
Which I personally think is rather cute.
Me too!
Even if I can't quite bring myself to
believe it's that simple...
I have convinced myself.
How can I be of assistance on your side?
--
TSa (Thomas Sandlaß)
- is now spelled ()
isn't it?
--
TSa (Thomas Sandlaß)
types to fill 'gaps' dynamically.
Something like 'compilation on demand' if that is the only way to actually
instanciate a template---but I'm not sure if Perl6's parametric types are
actually called templates.
I hope that helps.
--
TSa (Thomas Sandlaß)
as invocant? I would assume that everything else can be found
through it? Actually the mnemonics that $/ is the match and
methods on $?SELF are called with ./method fits. The only
remaining thing is to define the method set of the Match class.
--
TSa (Thomas Sandlaß)
don't understand this question. Do you want 'shallow copy'
to mean 'take a ref'? Or Parrot/Pugs level COW?
Are you alluding to the referential semantics discussion?
--
TSa (Thomas Sandlaß)
anyway to handle assignment.
Another general thing is of course that explicitly constant Refs
shall not be applicable as a lhs of assignment. This applies to
chains of prefixed $ as well.
--
TSa (Thomas Sandlaß)
1 - 100 of 146 matches
Mail list logo