Think about adding \ to the replacement part of a s///.
As in sed, the means the whole match.
Then one can do
s/$search/*\*/go
in stead of
s/($search)/*\1*/go
and there needs to be no $1 variable set up.
(I assume that using () always makes a $1 available, even if it is not
being
Nigel Hamilton schreef:
From the point of view of the operating system a program is a nasty
exception to its normal running environment - your whole program is a
kind of big exception!
As if a real OS really likes to run idle most of the time.
;)
Like someone intruding on a conversation
TSa schreef:
Yes, I'm also all for unifying the concepts. But please
don't let us call it exception. Exception should be a
termination oriented (sub)concept. Some kind of scoped giving
up. [...]
In lack of a better word I use Event and we get
Event::Exception, Event::Control, Event::Warn
Juerd:
Ruud H.G. van Tol:
s/($search)/*\1*/go
\1 in Perl 5 is bad style and emits a warning
The point was to give \1 and \, in the replace part, a very limited
scope.
Maybe even better to limit \1 to the first '(?: ... )' in the search
part.
s/(?:$search)(?:.\1)+/\1/go
xy.xy.xy.xy
Larry Wall:
But perhaps it wouldn't be kind.
'caste' wouldn't either.
For inspiraton: type sort class variety brand category breed manner
style nature form hue caste set background stage setting milieu locale
range assortment selection mixture strain suite scenery rank grade
division status
Stevan Little:
They present an rather interesting view on things, that the
definition of the instance creating portion of a class should be
seperated from the class or kind portion of the class.
Its quality. Its character. Its features. Its face.
--
Grtz, Ruud
John Williams:
($x *=2) += 1;
Or ($x *= 2) ++;
Maybe the comma should be taught a new trick:
$x *= 2, ++, /= 3;
meaning
$x = (($x * 2) + 1) / 3;
Or RPN-like:
$x #= 2* 1+ 3/;
--
Grtz, Ruud
Michele Dondi:
Ruud H.G. van Tol:
Or RPN-like:
$x #= 2* 1+ 3/;
Being a big fan of RPN myself (and considering it quite natural), I'd
appreciate very much such a feature. I had asked myself about RPN
features in P6, albeit in a probably unreasonable fashion:
http://www.nntp.perl.org
Maybe
\x{123a 123b 123c}
is a nice alternative of
\x{123a} \x{123b} \x{123c}.
--
Grtz, Ruud
Larry Wall:
Juerd:
Ruud:
Maybe
\x{123a 123b 123c}
is a nice alternative of
\x{123a} \x{123b} \x{123c}.
Hmm, very cute and friendly! Can we keep it, please? Please?
Thanks for the support.
We already have, from A5, \x[0a;0d], so you can supposedly say
\x[123a;123b;123c]
Larry Wall:
Ruud H.G. van Tol:
dev.perl.org one day latency but html-ified
svn.perl.org up to the minute but only in pod
Thanks, much better. Can't say that I haven't been there before.
There is a [[:alpha:][:digit:] and a [[:alpha:][:digit]] on the
A5-page.
The '^' could be used
Larry Wall:
in one of the updates, it says:
+[Update: Actually, that's now written C +alpha+digit ,
avoiding +the mistaken impression entirely.]
In dev's A05.html I only found:
[Update: That must now be written +alpha+digit, or it will be
mistaken for «alphadigit», which doesn't work
Patrick R. Michaud:
's/$/foo/' becomes 's/after .*/foo/'
g
Uh, no, because after is still a zero width assertion. :-)
That's why I chose it. It is not at the end-of-string?
perl5 -e '$_=abc; s/(?=...)/x/; print'
perl5 -e '$_=abc; s/(?!.)/x/; print'
's/!before ./foo/'
--
Grtz,
Patrick R. Michaud:
Ruud H.G. van Tol:
Patrick R. Michaud:
Ruud H.G. van Tol:
's/$/foo/' becomes 's/after .*/foo/'
Uh, no, because after is still a zero width assertion. :-)
That's why I chose it. It is not at the end-of-string?
Because .* matches , /after .*/ would be true at
every
Patrick R. Michaud:
Ruud H.G. van Tol:
's/$/foo/' becomes 's/after .*/foo/'
Uh, no, because after is still a zero width assertion. :-)
That's why I chose it. It is not at the end-of-string?
Because .* matches , /after .*/ would be true at
every position in the string, including
Larry Wall:
for ^5 { say } # 0, 1, 2, 3, 4
The 'for' can go if a list (and also an array) would imply looping, when
it is positioned next to a block:
a. say (0..4);
b. { say; say } (0..4);
c. (0..4) { say; say }
d. @{0..4} { say; say }
(etc.)
b. now produces 2 lines with 01234 (in
Ruud H.G. van Tol:
b. { say; say } (0..4);
b. now produces 2 lines with 01234 (in pugs). With implied looping
that would be 10 lines, starting with two 0-lines.
Standard:
do {say; say} for 0..4
for 0..4 {say; say}
Wishful:
(0..4) »{say; say}
pugs doesn't seem to do the
(f,oo,bar
Juerd:
Doesn't ^5 encourage [EMAIL PROTECTED] too much?
Can you explain when that creates a problem?
Maybe someone doing
for ([EMAIL PROTECTED])-$i { say @foo[$i] }
in stead of
say for @foo
After all, we should
write what we mean, instead of something that happens
to evaluate to the
Larry Wall:
I can see the mathematical appeal of coming up with a language in
which there is a meaning for every possible combination of tokens.
Yes, that sounds like my language. I agree it's not Perl. And not a lot
of other things too.g
It's a counterintuitive fact
that languages that
Juerd:
Ruud H.G. van Tol:
Doesn't ^5 encourage [EMAIL PROTECTED] too much?
Can you explain when that creates a problem?
It's not about problems in execution,
That answers when not. :)
it's about expression.
Also if [EMAIL PROTECTED] is the multi-dimensional index zip?
Maybe someone
Juerd:
Larry Wall:
[Peter Scott]:
It seems strange to have a shortcut for 0..$n-1 but no shortcut
for 0..$n.
But then you'd usually want 1..$n instead...
I think this illustrates very well that it's a bit silly to have a
shortcut for just one of the three much-used ranges.
But is it
Juerd:
I have no objections to [EMAIL PROTECTED] returning a list of indexes, if that
is the definition.
It is what Mark suggested. Rob suggested to use .indices instead.
Looking at 'elem(ent)s' and 'ind(exe)s' and 'ind(ice)s', I toss up
'inds' or 'ixs'.
I do object to [EMAIL PROTECTED]
TSa:
HaloO,
Hi!
Ruud H.G. van Tol:
Yes, it could use a step:
^42.7 = (0, 7, 14, 21, 28, 35)
^42.-7 = (35, 28, 21, 14, 7, 0)
OK, fine if the step sign indicates reversal after creation.
That is, the modulus is 7 in both cases.
^-42.7 = (-35, -28, -21, -14, -7, 0)
^-42.-7 = (0
TSa:
Ruud H.G. van Tol:
Not at all: they just overlap at 0.
OK, to me this spoils regularity. Like 'ab ' ~ ' xy'
becoming 'ab xy' is at least surprising, if not outright wrong.
That is
(~$x).chars + (~$y).chars == +((~$x) ~ (~$y))
should always hold. Same thing for list
Nathan Gray:
Luke Palmer:
I wonder if there is a macroey thing that we can do here. That is,
could we make:
ok(1);
is(1, 1);
like(foo, /foo/);
Into:
ok(1);
ok(1 == 1);
ok(foo ~~ /foo/);
And lexically analyze the argument to ok() to find out how to
Peter Schwenn schreef:
Is there such a Perl5-Perl6 translator underway?
http://dev.perl.org/perl6/
Perl6 FAQ
--
Grtz, Ruud
Darren Duncan schreef:
If you take ...
+-+-+
|a|x|
|a|y|
|a|z|
|b|x|
|c|y|
+-+-+
... and divide it by ...
+-+
|x|
|z|
+-+
... the result is ...
+-+
|a|
+-+
I'm not sure if Divide has an equivalent in SQL.
A verbose way to do it:
SELECT
John Macdonald:
[trans]
If a shorter rule is allowed to match first, then the longer
rule can be removed from the match set, at least for constant
string matches.
It is not about the length of the rules, but about the length of the
matches.
If both \s+ and \h+ match the same length, should
Larry Wall:
Ruud H.G. van Tol:
John Macdonald:
[trans]
If a shorter rule is allowed to match first, then the longer
rule can be removed from the match set, at least for constant
string matches.
It is not about the length of the rules, but about the length of the
matches.
They're
Darren Duncan schreef:
A variable whose value is undefined is still a typed container; eg:
my Int $z; # undef since not assigned to
my Str $y; # undef since not assigned to
If 'undef' becomes 'fail' at the same time that those base types don't
have default start-values such as 0 and ''
Gordon Henriksen schreef:
I find it useful to distinguish between unassigned and undefined
(null).
I am not sure that you need this distinction, but it should be no
problem to have it, just like 'tainted' and 'NaN' and 'zero/empty' and
'error'.
I find null propagation frustrating; it's more
Jonathan Lang:
could we huffman-code do nothing clauses by
leaving out the appropriate argument?
while $x-- some_condition($x);
Heheh, I often code like that, and then silence the complaint by adding
the {}.
--
Grtz, Ruud
Larry Wall schreef:
+=item pi
+
+ constant Num Num::pi = atan(1,1) * 4;
+ constant Int Int::pi = 3;
[...]
=item IStandard Trig Functions
[...]
+ multi Num::func ( Num $x: :$base = 'radians' -- Num )
+ multi Math::Trig::func ( Num $x = $+_, :$base = 'radians' -- Num )
Juerd schreef:
hierarchical names make less
and less sense by the day
I don't oversee the field yet, but maybe:
Introduce aliases (or hardlinks, in file-system-speak).
Likely in a separate top branch, such as @alias::.
The @alias-prefix is only necessary when there is a collision.
Mark Overmeer schreef:
Ruud H.G. van Tol:
[aliases next to hierarchical names]
@alias::HTTPD::Session - Apache::Session
HTTPD::Session - Apache::Session
Well, that's a technical solutions... your fill the name-space even
more:
I can see no harm in that.
the larger the harder to grasp
Ruud H.G. van Tol schreef:
[Perl6-modules meta-structure]
I am currently building a photo classification system. Each photo is
more or less unique, it has a unique identification code, and a short
and a long description. Both descriptions may even be left empty. The
classification
Perl6 could introduce (lexical, nestable) comment scope.
Has that been discussed before?
Maybe like:
##EOC
# a comment line
# another comment line
code
#EOC
Or like:
#{#
# first comment line
# next comment line
code
# last comment line
#}#
Or POD-ish.
David Green wrote:
Ruud H.G. van Tol:
Perl6 could introduce (lexical, nestable) comment scope.
Has that been discussed before?
I think someone might have mentioned it once. Officially you can use
# or make arbitrary POD sections.
I don't think that covers what I mean. It was thinking about
Uri Guttman wrote:
When cast into an array, you can access all the positional
arguments; Into a hash, all named arguments; Into a scalar, the
invocant; Into code, into slurpy nameless block.
The last 'into' should be 'the'.
s/Into/into/g
--
Affijn, Ruud
Juerd schreef:
autrijus:
-foo.($arg1, $arg2);
+foo. ($arg1, $arg2);
[...]
Please reconsider.
Yes, please come up with a different character to
bridge/cross/hide/cloak/skip/zap the succeeding not allowed
whitespace.
Maybe the \, making \whitespace mean s:s/\s+//.
--
Groet,
Larry Wall schreef:
before anyone else points it out to me
hihi
I think the long-dot
rule is built into the parser rather than falling out of the
longest-token rule.
I think so too, but why then cling to the dot?
s:p5/[\][#][^\]*[#][\]// (does not match \#\ )
The backslash is
[EMAIL PROTECTED] schreef:
@@ -266,7 +266,7 @@
=item *
-The new C:rw modifier causes this rule to claim the current
+The new C:rw modifier causes this regex to claim the current
string for modification rather than assuming copy-on-write semantics.
There are about eight uses of rather
Juerd schreef:
Dr.Ruud:
S05:
s/pattern/{ eval doit() }/
s/eval/try/ ?
No, string eval stays eval. Only block eval is renamed to try.
Understood, but I was thinking about variants like
{ eval '' ~ doit() }
{ eval $\doit }
and then wasn't sure anymore whether eval doit() is a string
TSa schreef:
Dr.Ruud:
What would be the way to define-or-set that a specific hash has
non-case-sensitive keys?
There are two things in this:
(1) The syntax to type the keys of a hash---too bad that I forgot it
and currently don't find it in the Synopsyses. Pointers welcome!
(2)
Allison Randal schreef:
Damian:
Match is a better word for what comes back from
a regex match (what we currently refer to as a Capture, which is
okay too).
I agree there. I still prefer 'rule'.
Maybe matex (mat-ex) for matching expression and, within that,
capex/captex (cap-ex/capt-ex) for
Damian Conway schreef:
grammar Perl6 is skip(/[ws+ | \# brackets | \# \N]+/) {
...
}
I think that first + is superfluous.
Doubly so if ws already stands for the run of all consecutive
word-separators.
--
Groet, Ruud
[EMAIL PROTECTED] schreef:
James Mastros:
Can I suggest we keep match meaning thing you get when you run a
thingy against a string, and make matcher be the thingy that gets
run?
Speaking of the word match, what I'd really like is to keep it
meaning stuff that matches. Unfortunately it
Audrey Tang wrote:
Patrick R. Michaud wrote:
- sp is a single character of obligatory whitespace
Hmm, it's literal ' ' (that is, \x20), not whitespace in
general, right? For obligatory whitespace we have \s.
Are all or some of the following equivalent to sp?
U+00A0 No-Break Space
[EMAIL PROTECTED] schreef:
Unary C~ now imposes a string (CStr) context on its
argument, and C+ imposes a numeric (CNum) context (as opposed to
being a no-op in Perl 5).
Shouldn't unary minus be mentioned too?
Or would one need C0- or C-+?
A reduction operator really is a list
Allison Randal schreef:
larry:
Changed :words/:w to :sigspace/:s and invented ss/// and ms// (or
maybe mm//).
I keep expecting 'sigspace' to have something to do signatures.
/me3, since it alliterates with sigsep.
--
Groet, Ruud
mAsterdam schreef:
Ovid:
Larry pointed out that this topic is better suited
for perl6-language instead of perl6-users, so I'm
forwarding this along.
Is there a reason perl6-users isn't fed through to nntp.perl.org ?
Maybe it is but I don't know to which group?
Darren Duncan schreef:
Each time a context (a code block, either a routine or a syntactic
construct like 'try' is) is entered that is marked 'is atomic', a new
transaction begins, which as a whole can later be committed or rolled
back; it implicitly commits if that context is exited normally,
Sage La Torra schreef:
http://infohost.nmt.edu/~slatorra/conversionstageone.txt
Any advice/comments/criticism on the document and even ideas on
implementation would be greatly appreciated.
I think that
split('\s+') - split(/\s+/)
should be
split('\s+') - .split(/\s+/)
--
Groet,
Darren Duncan schreef:
What I propose concerning non-premature === optimizing is a system
where, at any time that two appearances of the same immutable value
are compared with ===, they are immediately consolidated into a
single appearance.
That should only be done voluntarily. A bit like
Larry Wall schreef:
Maybe we should just make statement modifiers
uppercase and burn out everyone's eye sockets. :)
Or maybe
{
}.
while $x ;
--
Groet, Ruud
Thomas Wittek schreef:
Actually I don't know all of them but most seem to be (part of)
identifiers, not operators. Of course they are reserved words.
What I wanted to say is that it would annoy me, if almost all
operators and control-flow keywords are lowercase but a hand full of
them has
Carl Mäsak wrote:
But maybe a variable that implicitly carries along the loop index
would be even snazzier?
for @array - $val {
say $.\t$val;
}
Or give the block a name (label), and have an index (or several indexes, like
some that are reset by redo an some that are not) available,
Ph. Marek schreef:
[Haskell]
SomeThing a b
| a = 4 : b+2
| b = 3 : a+1
| otherwise : a*b
In Perl5 this looks like
sub SomeThing
{
my($a, $b)[EMAIL PROTECTED];
return b+2 if ($a == 4);
return a+1 if ($b == 3);
return a*b;
}
Or like:
sub SomeThing
{
alias my
Larry Wall schreef:
I suspect ordered composition is going to be rare enough that we can
simply dehuffmanize it to
$x does A;
$x does B;
$x does C;
Maybe use a list-like notation?
$x does (A, B, C,) ;
$x does (A ; B ; C) ;
$x does [A, B, C,] ;
$x does [A ; B ; C] ;
TSa schreef:
A(|)B produces a subtype of A and B, and that A()B
produces a supertype
Are you sure? I see as limiting; sub and | as enlarging;
super.
To me, is connected to multiplication (and inproduct, statistics,
fuzzy logic), and | to addition (and outproduct).
$ perl -we 'printf
Jonathan Lang schreef:
() and (|) would actually reflect your intuition regarding the
capabilities of the result, in that a role arrived at by means of ()
would provide fewer options than the individual roles used to create
it, while a role arrived at by means of (|) would provide more
Darren Duncan schreef:
TSa:
And I still think that it is a good idea
to name the set operations after their equivalent boolean
connectives:
(|) union
() intersection
(^) symmetric difference
Well, and to make them Bag operations to start with.
To start off with, I agree with
TSa schreef:
Smylers:
Jonathan Lang:
For the record, I think that superdoes should be spelled
done_by.
I think it's unlikely that Larry will incorporate any keywords that
contain underscores -- certainly not without at least searching for a
single word that sums up the concept in
Jonathan Lang schreef:
what we need here is something that very
clearly says the reverse form of 'does': if A does B, then B ___ A.
Far more important that if it's one word or two is: what fits most
naturally in the gap?
follows, trails, tracks, enforces, obeys, tolerates, enacts, endorses,
Larry Wall schreef:
the point is *not* to force it one way or the other--the point is
that many such functions would probably prefer not to commit one way
or the other, and they can't do that if they automatically throw away
the dimensional information.
Like with numbers, this looks to me
John Macdonald schreef:
hash
browned potatos which is a hash of chopped potato, onion,
and sometimetimes other things fried brown.
That comes from the French haché, meaning chopped. Best with lots of
small pieces of beef in it as well.
--
Groet, Ruud
Mark Overmeer schreef:
The nicest thing would be that the semantic docs become part of the
parse tree, which then (using standard introspection) can be used to
generate manual pages, natively into POD, roff, HTML, whatever.
I like to call them: lexical comments.
--
Groet, Ruud
Joe Gottman schreef:
if code that should be processed concurrently
is instead processed sequentially, the results will be correct
Not if parallel sampling of happening stuffs is involved. All of your
thousands of temperature sensors in your nuclear factory, all running
the same code, should
[EMAIL PROTECTED] wrote:
+0 .. ^10 # 0 .. (0..9)
+
+(It's not yet clear what the second one should mean, but whether it
+succeeds or fails, it won't do what you want.)
Ah, bob! (bottles of beer)
say, say - for ^0 .. ^5;
0
-
0
1
-
0
1
2
-
0
1
2
3
-
0
1
2
3
4
-
;)
--
Affijn, Ruud
David Green wrote:
I don't like dates just starting at midnight because I've run into too
many awkward cases where $time $date doesn't do what you mean because
it assumes 0:00:00 when you meant 23:59:59. I'd rather have dates
becomes time-ranges.
And not all midnights exist, because time
Martin D Kealey wrote:
Ah, we want a noun that isn't readily confused as an adjective.
Suitable terms might include: Instant Jiffy Juncture Moment Occasion Snap Tick
...
Once :)
--
Ruud
David Green wrote:
my $foo is limited(100..200);
$foo = 5; # really does $foo = 100
Where does that MySQ smell come from?
Why not undef (or NaN)?
--
Ruud
pugs-comm...@feather.perl6.nl wrote:
Author: wayland
Date: 2009-02-27 10:19:30 +0100 (Fri, 27 Feb 2009)
New Revision: 25614
Modified:
docs/Perl6/Spec/S32-setting-library/Str.pod
Log:
Return type for subst
Modified: docs/Perl6/Spec/S32-setting-library/Str.pod
Larry Wall wrote:
And in fact, the ö form looks more like a Hyper Attack Butterfly
that is about to bite your face off... :)
Her topmodel looks very hexagonal.
|_|
/ \
-/ \-
| |
-\ /-
\-/
| |
--
Ruud
I wonder if there is place for a decision operator.
(search terms: FPGA, evolvable hardware, Xilinx, PLB, LUT, NESW)
dop:| 0 1 2 3 4 5 6 7 8 9 A B C D E F
+
0 0 | 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 | 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 | 0 0 1 1 0 0 1 1 0 0
Timothy S. Nelson wrote:
I think a Complex range only makes sense if you provide 4 endpoints,
not 2, but I haven't been following the conversation, so I'll leave it
up to the Complex number experts :).
(start-angle, start-length)
:by(angle-step, length-factor)
--
Ruud
Jon Lang wrote:
An unrelated possibility would be to allow empty A tags in a
declarator block, with 'A' being replaced with the name of the
declarator to which the block is attached:
And then I think:
A_
--
Ruud (indoctrinated)
Darren Duncan wrote:
For the integer version, my understanding is that number theory already
provides a suitable term, Gaussian integer, which is a complex number
whose real and imaginary parts are both integers.
So I suggest using Gaussian as the name option for an IntComplex.
Or maybe
Jason Switzer wrote:
On Thu, May 13, 2010 at 3:59 AM, nigelsande...@btconnect.com wrote:
And at the core of that, is the need for preemptive (kernel) threading and
shared memory.
These can (and should!) be hidden from the application programmer, through
the use of language and/or library
Aaron Sherman wrote:
Having established this range for each correspondingly indexed letter, the
range for multi-character strings is defined by a left-significant counting
sequence. For example:
Ab .. Be
defines the ranges:
A B and b c d e
This results in a counting sequence (with the most
On 2010-11-15 23:46, Aaron Sherman wrote:
try {
?$!PIO.close()
}
$! ?? fail($!) !! Bool::True
Probably try{} can be made to return a True when there was no exception?
try {
...
1;
}
or fail( ... );
try {
...
On 2011-08-18 16:06, Carl Mäsak wrote:
I was working on the Little Animal Farm game yesterday, and wanted to
make it totally safe against tampering from the outside. (See
http://masak.org/carl/yapc-eu-2011-little-animal-farm/talk.pdf.)
I ended up implementing a custom accessor method and a sub
Don't type here.
On 2018-02-10 05:16, Parrot Raiser wrote:
On 2/10/18, Darren Duncan wrote:
I think if we want to keep "Perl" in the name we should use "C" as a precedent.
Other related languages keeping "C" include "Objective C", "C#", "C++",
Perl++ would work.
Basically, never mix error-state and return-value.
Rather use a different channel/dimension for each.
And any value itself can have special state too, like "absence" and (via
its type) "has-default".
On that docs-page, my stomach protested against the Nil/default pairing.
Now I need to
84 matches
Mail list logo