Autrijus Tang wrote:
pugs split /(..)*/, 1234567890
('', '12', '34', '56', '78', '90')
Is this sane?
Why the empty string match at the start?
--
$TSa == all( none( @Larry ), one( @p6l ))
of
chars the before last position doesn't produce an empty
match:
perl -le 'print join ,, split /(..)/, 11223'
,11,,22,3
Am I the only one who finds that inconsistent?
--
TSa (Thomas Sandlaß)
Larry Wall wrote:
Speaking of which, it seems to me that :p and :c should allow an
argument that says where to start relative to the current position.
In other words, :p means :p(0) and :c means :c(0). I could also see
uses for :p(-1) and :p(+1).
Isn't that slightly inconsistent with :p meaning
Benjamin Smith wrote:
sub foo { my $x; BEGIN { $x = 3 }; say $x }
foo; foo; foo;
Currently in perl5 and pugs this prints 3\n\n\n.
Which to me looks like a mix of runtime and compile time.
Actually Dave Mitchell confirmed that this is the case in
Perl 5. I have difficulty to regard this as a
Larry Wall wrote:
: Void context still exists and is not a form of singular or plural
: context. Perhaps this should be called nullar context, although void
: context works equally well for me and is not confusing because we have
: no Void type.
Nice, without Void we don't need the double headed
Autrijus Tang wrote:
Imagine:
pugs '1.28' * '2.56'
3.2768
What is (or should be) going on here here?
My personal favorite is
[5] none of the above -- that should be a type error. ;)
But only if MMD doesn't find a unique handler. That is I would
favor 'type error' =:= 'no handler ||
Autrijus Tang wrote:
So does it mean that a 3-story multisub with two colons will
always win against one with one colon?
multi sub foo (Any $x: Str $y: Str $z, Str $w) { 1 }
multi sub foo (Str $x, Str $y: Str $z, Str $w) { 2 }
say foo(x, y, z, w); # 1
Is the final level ($z and $w)
HaloO Autrijus,
you wrote:
On Fri, May 13, 2005 at 07:13:53PM +0200, TSa (Thomas Sandlaß) wrote:
Larry Wall wrote:
: Void context still exists and is not a form of singular or plural
: context. Perhaps this should be called nullar context, although void
: context works equally well for me
in Perl6?
Regards,
--
TSa (Thomas Sandlaß)
to whatever hides behind the ref|variable|name.
The [] then does the deref like () derefs foo.
Regards,
--
TSa (Thomas Sandlaß)
to calculate +[1,2,[3,4]] == 1|3?
The same applies to testcases 7 and 8.
All sane! :)
Am I insane?
--
TSa (Thomas Sandlaß)
opt for ([3]). In general the builtin operators should be grouped into
roles which are in turn composed into classes like Num which implement
them.
--
TSa (Thomas Sandlaß)
(Thomas Sandlaß)
Michele Dondi wrote:
On Wed, 18 May 2005, Rob Kinyon wrote:
1) undef (which may or may not contain an exception), or
2) some unit/identity value that is a trait of the operator,
I think that the unit/identity/neutral value is a trait of the
operator *and* the type of the values which are expected
HaloO Ingo,
you wrote:
I wondered if it would be useful/good/nice if the syntax for
specifying role parameters would be the same as the standard
subroutine signature syntax (minus the colon, which
separates the parameters which do account to the long name
of the role from the ones which
Ingo Blechschmidt wrote:
I meant: The colon should still act as the delimiter between the params
which account to the long name of the role and those which don't, but
otherwise the syntax should be the same as the standard subroutine
signature syntax, allowing optional params, etc.
I don't think
Miroslav Silovic wrote:
Uhm, but C++ templates are subject to (compile-time) MMD, once you
specialise them. In other words,
role Something[Int $num] {...}
role Something[String $num] {...}
Hmm, C++ has no free floating templates. They always template a
class/struct or a function. The Perl6
referential semantics. Until now you haven't convinced me of
the advantages of the old-style Perl5 references. What do they buy us?
--
TSa (Thomas Sandlaß)
of
eval, join and split. E.g. could the macro assistence for »« and []
be restricted to parse their inside as an operator name so that
the programmer doesn't have to use their long name? Or is something
more complicated needed? And if yes, then why?
Regards,
--
TSa (Thomas Sandlaß)
,~,''] {...}
class Complex does Field[Array[2] of Num,+,[0,0],*,[1,0]] {...}
class 3DVector does VectorSpace[Array[3] of Num,+,[0,0,0]] {...}
And it provides valuable information to the optimizer.
--
TSa (Thomas Sandlaß)
associative and returns Y when true then ...
Sorry, is it the case that $x = $y $z might put something else
but 0 or 1 into $x depending on the order relation between $y and $z?
--
TSa (Thomas Sandlaß)
}
}
But I think it's better to make bar a sub.
--
TSa (Thomas Sandlaß)
, is % defined as truncation in Perl6?
That would be a bit unfortunate. Simple but not well thought out.
--
TSa (Thomas Sandlaß)
. infix:{'='}:(Array:Eager -- Eager) would
not flatten but store the incoming value and return it for chaining
assignment.
--
TSa (Thomas Sandlaß)
name is not known until runtime, so I
think this should be forbidden. Correct?
Well, my has got a runtime counterpart which creates a fresh
set of local variables everytime the code object is invoked.
--
TSa (Thomas Sandlaß)
- (-1.2) % 1 == -1.2 - 0.8 == -2
ceil $x == 1 + floor $x
round $x == floor( $x + 0.5 )
trunc $x == $x 0 ?? ceil $x :: floor $x
To @Larry: how are mod and div defined in Perl6?
--
TSa (Thomas Sandlaß)
the equivalents
of + and ~ respectively? And - has no corresponding neg or so? The strings
'true' and 'false' should really be kept as enums of the bit type.
Thanks for your patience with me.
--
TSa (Thomas Sandlaß)
be the equivalent syntax to @b?
Is it %ba or %%ba or even (*%b)a?
It will hardly be %b{undef}a, though.
--
TSa (Thomas Sandlaß)
/necessity without a specific
implementation backend.
So, to summarize we could interpret our points of view as
syntax-down and type-up if the upward direction is from
implementation to type to syntax.
--
TSa (Thomas Sandlaß)
as chainfix, leftfix and rightfix? Or asterfix, idfix, truebafix, ... :))
This last joke might work for Germans only.
--
TSa (Thomas Sandlaß)
. They are macros or a direct part of the grammar.
::= is mostly syntactic sugar for a BEGIN block and := is basically
compiled to the engine level destructive assignment operation.
But this view might also be completely wrong.
Regards,
--
TSa (Thomas Sandlaß)
to the runtime dispatch. But this requires a self-contained
definition of the meaning of @a and [] as described by Rod.
--
TSa (Thomas Sandlaß)
language level references
are a means to share values. Don't mix that with the implementation
level references---which should be called pointers---that allow an
efficient implementation of handling heavyweight data.
--
TSa (Thomas Sandlaß)
Ingo Blechschmidt wrote:
# Please add more ways :)
enum MEANING_OF_LIVE:(42);
my MEANING_OF_LIVE = 42; # But might be considered evil sigilless mode
--
TSa (Thomas Sandlaß)
is DatabaseTable;
my %tree is StructuredDocument;
--
TSa (Thomas Sandlaß)
Ingo Blechschmidt wrote:
is that allowed (as 42 is a Num (or an Int), not a Code)?
I don't know, but guess not.
Do (most of) the basic types morph themselves into Codes, when needed?
I don't consider it type morphing. If your examples parse
at all they will be dispatched as usual
say
Identity[ infix:{'eq'} ] {...}
To what exteent in canbe auto-generated with dispatching to
the respective methods of all elements defined into the class'
value environment, I can't say.
--
TSa (Thomas Sandlaß)
that remains is how then to single step down
the link chain if that isn't contradicting the link concept in
the first place. But I think it doesn't need an operator.
A method might suffice:
:\$link.follow.follow # two steps down
--
TSa (Thomas Sandlaß)
combinations of signs which must be considered when
calculating $q and $r such that $x == $q * $y + $r holds.
Avoids lots of special case code across 0 boundaries.
If there is a definition that needs no special casing
then it is the euclidean definition that 0 = $r abs $y.
--
TSa (Thomas
presume is available in :() as well.
So a list of Int might be :(*Int) and a recurring tuple type might
be :(*(Int,Str)).
--
TSa (Thomas Sandlaß)
common base type that can handle cross-calender arithmetic
but as long as one stays in a homogenous subtype like Gregorian
in a particular time zone no generalization code should fire up.
--
TSa (Thomas Sandlaß)
of context is Perl's
version of static typing ala C++ and Java.
Sorry if this wasn't what you wanted to hear.
--
TSa (Thomas Sandlaß)
to
force binding behaviour. BTW, but is lower in precedence than \,
isn't it?
--
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ß)
that others can provide
to the above, especially from @Larry.
Sorry, I'm neither one(@Larry) nor a good Illuminati ;)
--
TSa (Thomas Sandlaß)
:()
And it nicely lines up with $y[], $y{}, @a[], %h{} etc. as
dereferential expressions.
--
TSa (Thomas Sandlaß)
---or purely syntactical. A method is e.g.
also not defined with the dot:
class Blahh
{
method .example ( $non_invocant ) {...}
}
--
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ß)
- is now spelled ()
isn't it?
--
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ß)
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ß)
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ß)
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
= $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
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ß)
into current scope
foo(1,2); # FooStuff[Int]::foo:(Int,Int)
foo(1,'blahh'); # type error?
Regards,
--
TSa (Thomas Sandlaß)
,
--
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ß)
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
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ß)
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ß)
call my own routine
I hope the initialisation in my also calls the overloaded
operator. But why shouldn't it?
--
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ß)
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ß)
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ß)
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
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
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
1 - 100 of 146 matches
Mail list logo