»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:03 mcmillhj joined 00:08 pharv joined, mcmillhj left 00:12 pharv left 00:13 mcmillhj joined 00:18 mcmillhj left, pharv joined
Herby_ m: say index "Find index of Year in this string", "Year"; 00:22
camelia 14
00:24 w_richard_w joined
Zoffix m: say WHY "Life, the Universe and Everything": 00:25
camelia 42 00:26
Herby_ :) 00:27
00:32 pharv left 00:33 pharv joined 00:34 SuicidalSunchip joined
SuicidalSunchip is anyone here 00:35
comborico1611 hi
Herby_ o/ 00:36
SuicidalSunchip hello 00:37
00:38 pharv left
comborico1611 Sunchips make my teeth feel really weird. Like stripping the enamel. 00:39
I have to eat a big bag for it to do it, though. I stoppped eatting sunchips. 00:40
I'm off to enjoy the sunset! 00:43
00:43 comborico1611 left 00:47 mcmillhj joined
SmokeMachine m: say 42 ~~ Int; say 42 ~~ (* > 10); say 42 ~~ Int & (* > 10); shouldn't the last one return `all(True, True)`? 00:48
camelia 5===SORRY!5=== Error while compiling <tmp>
Bogus term
at <tmp>:1
------> 3(* > 10); shouldn't the last one return 7⏏5`all(True, True)`?
expecting any of:
argument list
infix
infix stopper
p…
SmokeMachine m: say 42 ~~ Int; say 42 ~~ (* > 10); say 42 ~~ Int & (* > 10); #shouldn't the last one return `all(True, True)`?
camelia True
True
all((Int), True)
SmokeMachine m: say 42 ~~ 42 & (* > 10) 00:50
camelia all(42, True)
SmokeMachine m: say 42 ~~ (* > 10) & 42
camelia all(True, 42)
SmokeMachine m: say 42 ~~ (42 & Int) 00:51
camelia True
SmokeMachine m: say 42 ~~ 42 & Int
camelia True
SmokeMachine m: say 42 ~~ (* > 10) & (* < 100)
camelia Too few positionals passed; expected 2 arguments but got 1
in block <unit> at <tmp> line 1
00:52 mcmillhj left 01:06 mcmillhj joined 01:11 mcmillhj left, cozachk left 01:16 Praise left 01:17 mcmillhj joined 01:22 mcmillhj left 01:23 Praise joined, Praise left, Praise joined 01:29 pharv joined 01:33 espadrine left, w_richard_w left 01:34 w_richard_w joined 01:36 mcmillhj joined 01:38 vike left 01:41 mcmillhj left 01:50 ilbot3 left
Zoffix m: say 42 ~~ Int; say 42 ~~ (* > 10); say 42 ~~ Int & ((* > 10)); 01:51
camelia True
True
True
Zoffix SmokeMachine: you were closing over the `&` op
m: say ((Int & (* > 10))).^name
camelia WhateverCode
Zoffix m: say (Int & ((* > 10))).^name 01:52
camelia Junction
SmokeMachine Zoffix: thats it!! thanks!
Zoffix And ~~ collapses Junctions, so it's just a True, not all(True, True)
01:55 mcmillhj joined 01:56 ilbot3 joined, ChanServ sets mode: +v ilbot3 02:00 mcmillhj left
Herby_ hmm. 02:01
I'm trying to get a grammar token to match year (ex: 2001), as long as the year is not at the start of the string
"Party 1999" -> TRUE, "2001 Space" -> False
token year { <[ \[ \(]>? <!after ^> [19 <[0..9]> | 20 <[0..1]>] <[0..9]> <[ \] \)]>? } 02:02
sorry
token year { <[ \[ \(]>? [19 <[0..9]> | 20 <[0..1]>] <[0..9]> <[ \] \)]>? } 02:03
that is how it currently sits
I tried that <!after ^> pattern, but that didnt quite work
any ideas?
geekosaur I'd have said <after .> but would it have that context? 02:11
actually, it should, I'm overthinking it 02:12
Herby_ geekosaur: you're right. I'm trying to capture an edge case and its messing with my other matches 02:13
i'll figure out a different way to approach it
geekosaur did you try it? I have no idea what you're trying to do but the rephrased after might work 02:14
(instead of trying to say "after start of line", say "after any character". positive matches are more likely to do what you expect than negative ones) 02:15
02:15 mcmillhj joined
[Coke] docs.perl6.org/%20tilde.html 02:16
looks like quite a few pages with leading spaces. (many more in the coke/build branch) 02:17
Herby_ geekosaur: I did. it does work as described but then a later token starts failing instead 02:18
Geth doc/coke/build: 10be05c24c | (Will "Coke" Coleda)++ | 3 files
Attempt to process all pod files

Unsure if the right move here is to convert everything to string when needed, or if we should have converted it to string when trying to save it.
02:20 SuicidalSunchip left, mcmillhj left 02:26 pilne left 02:27 mcmillhj joined 02:32 mcmillhj left 02:35 w_richard_w left, w_richard_w joined 02:45 mcmillhj joined 02:50 mcmillhj left 02:57 simpleseeker left 02:59 simpleseeker joined 03:02 mcmillhj joined 03:07 mcmillhj left 03:12 dugdig left 03:13 mcmillhj joined 03:17 mcmillhj left 03:27 mcmillhj joined 03:32 mcmillhj left 03:38 khw joined, dugdig joined 03:39 titsuki_ joined, titsuki left 03:45 mcmillhj joined 03:50 mcmillhj left
Herby_ tyil: Looking at your "Introduction to Application Programming" article, and under the section of "creating library", you say to use "touch lib" but your code uses "touch unit" 03:51
just an fyi
03:58 pharv left, pharv joined 04:05 mcmillhj joined 04:09 mcmillhj left 04:18 mcmillhj joined 04:22 mcmillhj left 04:42 curan joined 04:47 mcmillhj joined 04:52 mcmillhj left 05:00 Kaiepi left 05:01 fbynite joined 05:03 fbynite left 05:04 mcmillhj joined, espadrine joined 05:09 mcmillhj left, pharv left 05:10 pharv joined 05:11 char_var[buffer] joined 05:14 mcmillhj joined 05:16 sauvin joined 05:18 ufobat joined 05:19 mcmillhj left 05:34 mcmillhj joined 05:39 mcmillhj left
tyil Herby_: nice catch, thanks! 05:41
05:51 mcmillhj joined 05:56 mcmillhj left, khw left 06:01 wamba joined 06:03 mcmillhj joined 06:07 mcmillhj left 06:09 troys left 06:21 mcmillhj joined 06:26 mcmillhj left 06:31 domidumont joined, mcmillhj joined 06:32 dustinm` joined 06:36 mcmillhj left 06:38 rindolf joined, domidumont left 06:39 domidumont joined, pharv left
ufobat in perl5 'x 2' would also double a list. e.g. (1..3) x 2 06:43
what would be the perl6 way of doing this?
m: (1..3) x 2
camelia WARNINGS for <tmp>:
Useless use of "x" in expression "(1..3) x 2" in sink context (line 1)
ufobat m: say (1..3) x 2
camelia 1 2 31 2 3
06:43 dct joined
ufobat x seems to stringify it 06:44
geekosaur xx? 06:46
m: say (1..3) xx 2
camelia (1..3 1..3)
geekosaur m: say |(1..3) xx 2
camelia (1 2 3 1 2 3)
ufobat yay! thanks
06:47 mcmillhj joined 06:49 andrzejku joined
ufobat and if i want to put this in a pair ;-) 06:49
m: say Pair.new( |@((qw|ru be uk|) xx 2)) 06:50
camelia (ru be uk) => (ru be uk)
ufobat looks not really readable :(
i can leave out the @ 06:51
moritz m: say (<ru be uk> xx 2).flat
camelia (ru be uk ru be uk)
moritz m: say Pair.new: |(<ru be uk> xx 2) 06:52
06:52 dct left
camelia (ru be uk) => (ru be uk) 06:52
moritz let's say I've seen worse :-)
m: say Pair.new: |<ru be uk> xx 2
camelia Cannot resolve caller new(Pair: Seq); none of these signatures match:
(Pair $: Cool:D \key, Mu \value, *%_)
(Pair $: Mu \key, Mu \value, *%_)
(Pair $: Mu :$key!, Mu :$value!, *%_)
in block <unit> at <tmp> line 1
06:52 mcmillhj left
ufobat m: say |<ru be uk> xx 2 06:53
camelia (ru be uk ru be uk)
ufobat that would flatten to much
moritz right 06:54
I wasn't sure about the relative precedence of prefix | and infix xx
ufobat ty :-)
06:58 mcmillhj joined 07:03 mcmillhj left 07:08 domidumont left 07:12 mcmillhj joined 07:17 mcmillhj left 07:27 mcmillhj joined
stmuk_ Herby_: wakelift.de/ 07:29
07:30 domidumont joined 07:31 darutoko joined 07:32 mcmillhj left 07:35 jmerelo joined 07:38 scimon joined 07:43 mcmillhj joined
jmerelo Hi 07:44
ufobat stackoverflow.com/questions/389091...h-in-perl6 ++ :( 07:47
07:48 mcmillhj left
Geth doc: 52e38a9dcc | (JJ Merelo)++ | doc/Language/grammars.pod6
Reverts in part 9b1a88acf50cc31a

Because the code that generates indexes is terra incognita and changing the grammar declarator from one place to another leads to errors. Change related to #1912 remains in place.
07:49
synopsebot Link: doc.perl6.org/language/grammars
jmerelo ufobat: thanks!
ufobat jmerelo, huh? 07:50
jmerelo ufobat: thanks for posting an StackOverflow link. We should do that much more :-) 07:52
ufobat: and/or post questions/answers to StackOverflow :-)
ufobat heh :-) indeed. i was just.. whining because i was missing this method and i switched to @array with calling .unique in the end, because it looks better 07:54
m: @a = <a>; my @values = (1,2,3); @a.append: @values; say @a 07:58
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@a' is not declared
at <tmp>:1
------> 3<BOL>7⏏5@a = <a>; my @values = (1,2,3); @a.appen
ufobat m: my @a = <a>; my @values = (1,2,3); @a.append: @values; say @a
camelia [a 1 2 3]
ufobat m: my @a = <a>; my @values = (1,2,3); @a.append: @values, 4; say @a
camelia [a [1 2 3] 4]
ufobat is this a bug?
it's confusing to me 07:59
m: my @a = <a>; my @values = (1,2,3); @a.push: @values, 4; say @a
camelia [a [1 2 3] 4]
jmerelo I would say the "single argument rule" is kicking in.
ufobat m: my @a = <a>; my @values = (1,2,3); @a.push: @values; say @a
camelia [a [1 2 3]]
jmerelo ufobat: when you add the comma in @values,4 you're making it two different arguments. The single argument rule implies arguments to iterators are not flattened, basically 08:00
, is creating a list with two elements, @values and 4 08:01
ufobat yeah - it makes sense to me now
jmerelo I just added yesterday that to the documentation, closing issue #600
08:02 dakkar joined
ufobat i knew it actually. but i was just assuming that append would work differently 08:02
jmerelo Now, I would be _extremely_ happy if you posted that same question to StackOverflow :-) you can answer it yourself, if you want, but the point is to make everything easily searchable
08:03 mcmillhj joined
ufobat okay! i'll create an stackoverflow account 08:03
08:05 noganex left
jmerelo ufobat: thanks! 08:07
08:07 mcmillhj left
ufobat jmerelo, done ;) 08:16
08:16 mcmillhj joined, zakharyas joined
jmerelo ufobat++ 08:19
08:21 mcmillhj left 08:23 pmurias joined
pmurias re parrot in a new hat, they got low level and high level languages to run together so they succedded in more than parrot was ever imagined to be 08:24
Zoffix: re porting over to a new backends you mostly need to port over the nqp:: ops and some QAST::* nodes 08:29
TEttinger pmurias: was the re about MOAR or some other VM? 08:30
pmurias TEttinger: Zoffix was asking a question about porting Rakudo to GraalVM
TEttinger oh...
I uh have had very poor experiences with Graal 08:31
it may become usable at some point though
pmurias what was wrong with it?
TEttinger it has a ton of backing from Oracle, I guess. what's wrong with it is multifaceted. there's no windows support; when I tried it they apparently thought there was but it had some mix of very basic Python code bugs in their NIH build tool called mx, and very hard bugs in other parts. it's GPL2, no exceptions, so it's license incompatible with a ton of Java code despite being for the JVM 08:33
it couldn't use anything from Apache, for instance 08:34
08:35 mcmillhj joined
TEttinger it needs lab JVMs, it won't currently work on a normal JVM at least for dev 08:35
08:36 noganex joined
TEttinger its licensing scheme is generally confusing and I don't know why they didn't match OpenJDK's restrictive license and went with something even more restrictive 08:37
pmurias TEttinger: re windows support it seems like something that could have been ironed out for 1.0 08:38
TEttinger I can find my issue
github.com/graalvm/graal-core/issues/262
they've since rearranged all the projects to erase all old issues it looks like
08:40 mcmillhj left
pmurias TEttinger: re license issues I'm not a lawyer but they seem to license a bunch of GraalVM parts differently 08:41
TEttinger it may have improved, I dunno. I just had a very unpleasant experience with it 08:45
pmurias they don't seem to advertise windows support on their downloads page 08:46
TEttinger indeed, it needs you to build the VM yourself 08:47
github.com/oracle/graal/blob/maste...jvmci-jdk8
08:47 mcmillhj joined
TEttinger it also says it works with JDK9, later builds 08:48
pmurias I don't use windows myself for anything than playing some games once in a blue moon, but I understand it's a limitation
TEttinger it's my currently only OS
08:51 eliasr joined
TEttinger ugh but some stuff won't work with jdk9 anyway github.com/oracle/graal/blob/maste...ild-script 08:52
lol, and their motto is "GraalVM: Run Programs Faster Anywhere" 08:53
tadzik the good, ol' "run everywhere" :P
08:55 jmerelo left 08:56 mcmillhj left
TEttinger the funnier thing is there's an open bug with its support for normal Java apps that use libGDX, which is a gamedev framework that actually does run almost everywhere with no code changes in some cases (I've had android ports of desktop apps be simply an extra compilation) 08:58
I kinda doubt graal targets iOS 08:59
LLVM would let it do that though
JITs aren't allowed by App Store rules though
09:10 w_richard_w left 09:20 jmerelo joined
pmurias TEttinger: graalvm doesn't run on the LLVM 09:22
09:24 wamba left
jmerelo exit 09:26
09:26 jmerelo left
TEttinger sulong does, which is an implementation of graalvm 09:26
09:45 dogbert2_ joined 09:48 xtreak joined
pmurias TEttinger: nope, sulong runs LLVM *on* the graalvm 09:49
TEttinger: so you can run C++ or Rust on the graalvm using sulong 09:50
09:52 markong joined
TEttinger that's uh something 09:53
09:54 AlexDaniel joined 10:06 domidumont left, pmurias left 10:15 pmurias joined
pmurias TEttinger: they *could* disable the JIT and run it slower on the iOS not sure if it's something they are interested in 10:16
TEttinger: it seems to be they want to take over the server side dynamic/scripting language marker 10:17
* market
TEttinger mmmm 10:18
10:19 xtreak left
Zoffix pmurias: it wasn't me who was asking tho. It was simcop2387 10:36
10:42 TEttinger left
pmurias Zoffix: sorry, meant to say answering 10:46
Zoffix ah
pmurias but hopefully for GraalVM a lot of the more mudane nqp:: ops can be stolen from our existing JVM backend 10:47
Geth ¦ doc: JJ self-assigned Explanation of the "Single Arg Rule" github.com/perl6/doc/issues/600 10:48
timotimo m: say (<ru be uk> xx 2).pairup # ufobat 10:49
camelia ((ru be uk) => (ru be uk))
yoleaux 01:02Z <MasterDuke> timotimo: some info re sinking and loops from TimToady and Zoffix irclog.perlgeek.de/moarvm/2018-04-18#i_16059397
pmurias Zoffix: for me a large part of building a rakudo backends was implementing stuff and then discovering "not that's not how Rakudo wants things to work" 10:50
Zoffix And buggy tests :) 10:54
Zoffix &
10:54 Zoffix left 11:01 xtreak joined
daxim www.johndcook.com/blog/2018/04/17/...ent-936952 (via hn) 11:12
tadzik darkpan! 11:13
timotimo oh, i should definitely put "perl programming" in visible text on my blog 11:20
now that i have a site with stuff on it, might as well have it counted by tiobe
tadzik heh 11:21
timotimo seriously, though. tiobe's methodology is so bunk it's not even funny
tadzik X-Powered-By: Mojolicious BTW PERL PROGRAMMING HI TIOBE
well, it's an ok methodology, but not exactly for progamming language popularity 11:22
timotimo yet somehow people keep mentioning tiobe. it's as if homeopathy kept showing up in medical journals with the aside "i won't argue if homeopathy works, but for this article i'll assume it's good enough"
tadzik heh 11:23
true that
but it's hard to argue that perl is not exactly a shining star anymore 11:24
when perl shops have to hire non-perl programmers and teach them on site in order to get *anybody*
we have a guy now at one of the clients whose daily standup report is "I did chapter 7 and 8 from learning perl"
donpdonp heh 11:25
timotimo does it count if it's inside <small> tags?
tadzik hm, does it actually count text on websites? I thought it's google search terms 11:26
jkramer I think I've asked this bevor, but I don't remember. How can I look up an enum object by it's value? 11:28
m: enum Foo (:bar('lol'), :baz('yay')); say Foo.enums.antipairs.Map<yay>.WHAT
camelia (Str)
timotimo there's the mailing list thread where one of the tiobe folks comes to the pascal community and says "oh, just add 'pascal programming' to all your sites!" and later "hey your work has paid off, your rank has improved significantly!"
jkramer This gives me the name as a string, but not the object
m: enum Foo (:bar('lol'), :baz('yay')); say Foo.enums.antipairs.Map<yay>.WHAT; say bar.WHAT 11:29
camelia (Str)
(Foo)
timotimo m: enum Foo (:bar('lol'), :baz('yay')); say Foo("lol").perl
camelia Foo::bar
timotimo jkramer: just like that 11:30
jkramer Ooh, so simple :)
timotimo: Thanks!
timotimo delphi.org/2008/10/delphi-language-...year-2008/ 11:34
11:36 brrt joined
AlexDaniel nice. 11:37
11:37 rindolf left 11:38 mikak joined, mikak left
buggable New CPAN upload: List-SomeUtils-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 11:48
11:48 domidumont joined, zakharyas left
jkramer When I have an object hash like my ValueClass %hash{KeyClass}, how are KeyClass keys looked up in the hash? Or rather how are they compared with each other? 12:03
timotimo it uses the WHICH method 12:04
jkramer Hmm, so I guess I can't do %foo{$basically-the-same-object-contentwise-as-the-key-but-a-new-instance}? 12:05
Or can I override WHICH for my key class? Would that be a smart thing to do? :) 12:06
timotimo you can of course do that 12:08
jkramer But might it break something else? I'm assuming WHICH is kind of internal stuff that I might not want to touch :) 12:09
12:10 AlexDani` joined 12:11 AlexDaniel left
lizmat jkramer: .WHICH is how you would like to provide an object of your class with a unique ID 12:11
the default assumes that each instantiated object of your class is unique 12:12
jkramer Basically what I want to do is: %grid{Coordinates.new(:x(123), :y(345))} and have it find the value for those coordinates, even though the Coordinates object is a new one
lizmat then you need to provide a .WHICH method that is unique for the *values* in your object
jkramer So I guess in Coordinates you could just do method WHICH { "$.x $.y" }
lizmat well, you'd probably want to include the name of your class
as .WHICH values are considered to be global 12:13
jkramer Ha true
lizmat but yes, that's basically it
of course you may want to make sure that :x(12),:y(345) and :x(123),:y(45) don't produce the same .WHICH value
jkramer Yeah I think the space should do that :) 12:15
12:15 AlexDani` is now known as AlexDaniel
lizmat jkramer: if it's just about numerical values, that's fine 12:15
with string values not so much :-)
jkramer So method WHICH { "$.^name $.x $.y" } should work I guess, I'll try that now :)
lizmat: They're both Int so that should be fine :) 12:16
ufobat pairup!!!!!! timotimo thx :D
12:16 pmurias left
jkramer Actually, why not just do method WHICH { $.perl }? 12:17
lizmat jkramer: if you don't expect subclasses, then it would probably be wiser to hard code the .^name value and use $!x $!y for performance
jkramer: if the attributes are public, sure
jkramer lizmat: It's just a little script for a coding challenge, I don't expect subclasses and don't care about performance ;)
lizmat then $.perl should do just fine 12:18
jkramer Ha, fun fact: .perl calls .WHICH to find out the class name, so that's an infinite loop/recursion :) 12:21
lizmat ah, hmmm...
jkramer Or well it calls it anyways, don't know what it actually does with it
lizmat ah, looks like that's the self-referring data structure check that's interfering 12:22
timotimo ufobat: don't forget it returns a list 12:23
12:23 mcmillhj joined
lizmat jkramer: I guess you'll have to throw your own then anyways 12:23
jkramer Yup
12:30 wamba joined
Herby_ o/ 12:30
12:33 wamba left
timotimo maybe create an ObjValAt in the WHICH for your custom class 12:35
12:50 vcv joined 12:52 zakharyas joined 12:53 rindolf joined 12:59 xtreak left 13:06 curan left 13:07 curan joined, curan left 13:12 vike joined 13:13 telex left 13:14 telex joined 13:19 mcmillhj left 13:21 raynold left
[Coke] pondering a htmlify option that will not emit information about what commit and when the docs were created, to help with refactoring so it's easier to compare the differences. 13:24
13:25 mcmillhj joined 13:26 vcv left 13:27 vcv joined 13:29 vcv left 13:30 vcv joined
buggable New CPAN upload: List-MoreUtils-0.0.3.tar.gz by ELIZABETH modules.perl6.org/dist/List::MoreUt...:ELIZABETH 13:38
13:52 domidumont left 14:11 nwellnhof joined
nwellnhof rakudo: say (<a b c>, *.reverse ... *)[5] 14:12
camelia The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
nwellnhof Can anyone explain?
timotimo m: say (<a b c>, *.reverse.List ... *)[5] 14:13
camelia (c b a)
timotimo m: say (<a b c>, *.reverse.cache ... *)[5]
camelia (c b a)
Geth marketing: 37dc838609 | (Zoffix Znet)++ | 154 files
Rename "Table Posters" to "Flyers"
timotimo i'm not sure i've got a proper explanation for this, but i do have the solution 14:14
AlexDaniel well, it's trying to reverse the same Seq over and over
m: <a b c>.reverse.reverse.say 14:15
camelia (a b c)
AlexDaniel but that works
that initial snippet actually worked previously before github.com/rakudo/rakudo/commit/be...d919c695d0 14:16
but List.reverse returning a Seq is probably right 14:17
nwellnhof I don't really understand why the Seq is iterated twice. 14:19
Geth marketing: 7e0b5999e7 | (Zoffix Znet)++ | 154 files
Add IDs to print materials

Makes things a lot easier to manage when you got 100s of flyers
14:21
moritz once from the series operator at least, and once form say()
*from*
Geth marketing: 723ac43d50 | (Zoffix Znet)++ | 12 files
Add "All Your Cores" flyer / ID: 1524053519
14:22
nwellnhof But say() only receives the last Seq that hasn't been iterated yet. 14:25
AlexDaniel moritz: but why is … iterating it? Isn't it supposed to build a sequence of Seqs? 14:27
m: dd (<a b c>, *.Seq ... *)[^2] 14:28
camelia (("a", "b", "c"), ("a", "b", "c").Seq)
AlexDaniel m: dd (<a b c>, *.Seq ... *)[^3]
camelia (("a", "b", "c"), Seq.new-consumed(), Seq.new-consumed())
AlexDaniel m: dd (<a b c>, *.Seq ... *)[3]
camelia The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
14:30 committable6 left
moritz AlexDaniel: well, the third item has to iterate the second item in order to create the reversed-again list 14:30
14:30 committable6 joined, ChanServ sets mode: +v committable6
AlexDaniel oh 14:32
wait uh
m: <a b c>.reverse.reverse.reverse.reverse.reverse.say 14:33
camelia (c b a)
AlexDaniel but that works, right?
so why can't it be done with … operator? what am I missing?
nwellnhof Yeah, that's my point.
14:33 Zoffix joined
Zoffix AlexDaniel: there you're not using the Seq the second time 14:33
m: my $s1 := <a b c>.reverse; my $s2 := $s1.reverse; say $s1; 14:34
camelia The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
Zoffix This is the right equivalent
14:36 bisectable6 left, bisectable6 joined, ChanServ sets mode: +v bisectable6
AlexDaniel so what is using the Seq the second time when using … ? 14:37
like here
Zoffix say
AlexDaniel m: say (<a b c>, *.Seq ... *)[3]
camelia The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
AlexDaniel ok, what's the first time then?
Zoffix .reverse
AlexDaniel what did .reverse on the 3rd element? 14:38
I never asked for 4th
Zoffix 3 is 4th
m: say (<a b c>, *.Seq ... *)[^2] 14:39
camelia ((a b c) (a b c))
Zoffix m: say (<a b c>, *.Seq ... *)[^3]
camelia The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
14:39 brrt left
Zoffix m: @ = (<a b c>, *.reverse ... *)[^3] 14:39
camelia The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
AlexDaniel m: my $l1 := <a b c>; my $s1 := $l1.reverse; my $s2 := $s1.reverse; say $s2 14:40
camelia (a b c)
AlexDaniel that works
m: say (<a b c>, *.reverse ... *)[2]
camelia The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
AlexDaniel that doesn't
AlexDaniel is stupid and does not get it
Zoffix [2] is the third item, not second: 0, 1, 2
AlexDaniel m: my $l0 := <a b c>; my $s1 := $l1.reverse; my $s2 := $s1.reverse; say $s2 14:41
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$l1' is not declared. Did you mean any of these?
$l0
$s1

at <tmp>:1
------> 3my $l0 := <a b c>; my $s1 := 7⏏5$l1.reverse; my $s2 := $s1.reverse; say
AlexDaniel m: my $l0 := <a b c>; my $s1 := $l0.reverse; my $s2 := $s1.reverse; say $s2
camelia (a b c)
AlexDaniel l0, s1, s2
Zoffix ah
m: @ = (<a b c>, {dd $_; .reverse} ... *)[^3] 14:43
camelia List @tail = $("a", "b", "c")
The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
Zoffix it doesn't even get sent as a Seq to the code
Golfed: 14:55
m: dd gather { ().Seq.take }
camelia (Seq.new-consumed(),).Seq
Zoffix s: ().Seq, 'take', \()
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/0579...Mu.pm6#L62
Zoffix s: &take, \(().Seq) 14:56
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/0579...ol.pm6#L62
Zoffix Filed as R#1742 14:59
synopsebot R#1742 [open]: github.com/rakudo/rakudo/issues/1742 Can't .take uncached Seq
Zoffix nwellnhof: so the answer to your question: it's either a bug (more likely) or a limitation.
nwellnhof Thanks for the answer! 15:01
Zoffix oh, lol, I see the bug :) 15:02
&THROW returns the arg and it gets sunk and consumes the seq
15:03 Sgeo__ joined
timotimo %) 15:03
15:04 pmurias joined
Zoffix Well, I guess it's really .take returning its value that messes this up 15:05
m: dd gather { my $ = ().Seq.take }
camelia (().Seq,).Seq
Zoffix patches &SEQUENCE
15:06 Sgeo_ left
Zoffix e: say (<a b c>, *.reverse ... *)[5] 15:18
evalable6 (c b a)
Zoffix nwellnhof: so the answer to your question: it works fine if your rakudo is recent enough ^_^ 15:19
15:27 pharv joined
AlexDaniel hahaha 15:30
Zoffix++ thank you
nwellnhof Cool, thanks. 15:31
So it seems I could golf my PCG answer by two more bytes: codegolf.stackexchange.com/a/162701 15:33
15:36 Zoffix left 15:37 robertle left 15:42 pharv left 15:43 pharv joined 15:45 scimon left 15:50 khw joined 15:51 quotable6 left, quotable6 joined, ChanServ sets mode: +v quotable6 15:54 pharv left, pharv joined, mcmillhj left 15:55 brrt joined 15:57 nwellnhof left, brrt left 16:02 jmerelo joined 16:04 mcmillhj joined, zakharyas left 16:05 pharv left 16:07 pharv joined
Geth doc: b409bd1d3d | (JJ Merelo)++ | doc/Language/list.pod6
Clarifies even more the "single arg rule"

eliminates reference to Synopsis, too. Closes #600 again.
16:09
synopsebot Link: doc.perl6.org/language/list
16:09 mcmillhj left
Geth doc: 68390f1467 | (Will "Coke" Coleda)++ | doc/Language/list.pod6
style: space after comma
16:14
jmerelo What was that robot that told you where some particular class was implemented? 16:15
16:16 mcmillhj joined
geekosaur SourceBaby 16:19
jmerelo SourceBaby: CompUnit::Repository::Installation
geekosaur: thanks
SourceBaby: s CompUnit::Repository::Installation 16:21
SourceBaby: 'CompUnit::Repository::Installation'
SourceBaby: 'CompUnit::Repository::Staging'
16:22 lalitmee joined, lalitmee left 16:23 lalitmee joined
geekosaur usage is a bit complex, iirc 16:23
16:25 Zoffix joined, lalitmee left
Zoffix jmerelo: it doesn't really tell where class is defined. It reports the .line and .file for a particular routine 16:25
16:25 lalitmee joined
jmerelo p6: $*REPO.resolve(CompUnit::DependencySpecification.new(:short-name<Compunit::Repository::Installation>)) 16:26
camelia ( no output )
Zoffix It's in rakudo's lib/
The CompUnit::Repository::Staging I mean
jmerelo OK, I found it github.com/rakudo/rakudo/blob/98e5...gistry.pm6 Thanks! 16:27
16:28 jmerelo left
Zoffix jmerelo: as I remember it, the CompUnit's interface is essentially unspecced and can't really be documented. 16:28
oh, there's some in S11-compunit/S10-packages 16:29
16:29 evalable6 left, evalable6 joined
Zoffix and S11-repository 16:29
16:29 Zoffix left 16:34 pilne joined 16:39 margeas joined 16:43 markong left 16:46 margeas left 17:00 dakkar left 17:10 mcmillhj left 17:11 stmuk joined 17:13 stmuk_ left 17:17 irco joined, mcmillhj joined 17:23 mcmillhj left 17:26 mcmillhj joined 17:30 robertle joined 17:35 domidumont joined 17:36 pharv left 17:37 pharv joined 17:40 zakharyas joined 17:42 mcmillhj left 17:44 zakharyas left, pharv left 17:45 zakharyas joined, lindylex joined 17:50 zakharyas left
lindylex p6: say 3; 17:50
camelia 3
17:57 mcmillhj joined, wamba joined 18:02 mcmillhj left
lindylex p6: 100.WHAT.say; 18:04
camelia (Int)
18:07 stux|away joined 18:08 mcmillhj joined 18:11 pharv joined 18:12 FROGGS joined 18:13 mcmillhj left 18:16 mcmillhj joined 18:18 sauvin left 18:23 raynold joined 18:37 darutoko left 18:41 domidumont left 18:49 comborico1611 joined 18:56 simpleseeker left 19:05 vcv left 19:07 pecastro left
comborico1611 I forgot how to call the REPL. 19:12
round (42.25, 1)
Produces 2. I'm not sure why. I understand it has something to do with the leading space first parenthesis. 19:13
tobs m: round(42.25, 1)
camelia WARNINGS for <tmp>:
Useless use of "round(42.25, 1)" in expression "round(42.25, 1)" in sink context (line 1)
tobs m: say round(42.25, 1)
camelia 42
tobs m: say round (,)
camelia 5===SORRY!5=== Error while compiling <tmp>
Preceding context expects a term, but found infix , instead.
at <tmp>:1
------> 3say round (,7⏏5)
tobs comborico1611: anyway, iirc, the space between routine call and parentheses makes the list of arguments a single list which is passed to the routine 19:14
comborico1611 So how is (42.25, 1) being rounded to 2? 19:15
tobs no idea
comborico1611 Bazaarness.
xq number of elements in a list?
comborico1611 Heh.
Let me check
tobs looks like it
comborico1611 m: round (42.25, 1, 3) 19:16
camelia WARNINGS for <tmp>:
Useless use of "round (42.25, 1, 3)" in expression "round (42.25, 1, 3)" in sink context (line 1)
xq m: say round (42.25, 1);
camelia 2
xq m: say round (42.25, 1, 3);
camelia 3
comborico1611 This REPL is different than my REPL.
xq that's how
comborico1611 oh. semicolon
xq note the space between d and (
comborico1611 Hmm.
xq round() is different from round ()
comborico1611 So round also works as an element counter 19:17
xq: Roger that.
tobs m: say (42.25, 1).isa(Cool) 19:19
camelia True
tobs round coerces Cool to Numeric, so that's why 19:20
(I guess?)
comborico1611 Less than awesome error message for round( 42.25, 1, 3). Proto signature? Never heard of it, neither is listed under search in Docs. 19:21
I can tell you Perl6 is much better error messing than Common Lisp, though!
And I do speculate Perl6 has the best error messing in the biz. 19:22
messaging*
Which is smart.
19:23 vcv joined
comborico1611 Same error message with: say round; 19:26
moritz m: say round 19:29
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling round() will never work with proto signature ($, $?)
at <tmp>:1
------> 3say 7⏏5round
19:29 Zoffix joined, zachk joined, zachk left, zachk joined
moritz just ignore the word you don't understand :-) 19:30
comborico1611 :-)
I will try.
19:30 zachk left
Zoffix It is a bit LTA that you can give a Cool in single-arg form, but you gotta give a Numeric in 2-arg form 19:31
19:31 zachk joined, zachk left, zachk joined
Zoffix m: say round <a b c> 19:31
camelia 3
Zoffix m: say round <a b c>, 10
camelia Cannot resolve caller round(List, Int); none of these signatures match:
($a)
(Numeric $a)
(Numeric $a, $scale)
in block <unit> at <tmp> line 1
Zoffix comborico1611: what would be a clearer error message?
19:32 mcmillhj left
Zoffix R#1745 19:32
synopsebot R#1745 [open]: github.com/rakudo/rakudo/issues/1745 [LHF][consistency] &round inconsistent on types of arguments.
19:33 zachk left 19:34 zachk joined
Zoffix comborico1611: also, I'd say Rust has the best error messages in the biz :) but we're catching up 19:34
19:34 mcmillhj joined, FROGGS left
comborico1611 Zoffix: I'm not knowledgeable enough to provide a clearer error message. I'm just reporting what I'm finding as a newbie. 19:35
Zoffix: That is intersting to know.
Zoffix comborico1611: it's basically saying of all the ways you can call &round, none of them will accept the 3 arguments
m: proto z($, $?) {}; z 1, 2, 3 19:36
camelia Too many positionals passed; expected 1 or 2 arguments but got 3
in sub z at <tmp> line 1
in block <unit> at <tmp> line 1
Zoffix s: &round 19:37
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/9e6a...c.pm6#L199
geekosaur that message is telling you that it wants some kind of scalar, and another optional scalar. it can't say more, really, it doesn't know enough
comborico1611 Zoffix: So instead of proto signature, I would say that, "passed too many arguments". But I'm not sure if that will not be adequate for all the scenarios like proto signature I assume is.
Zoffix m: proto z($, $?) {*}; z 1, 2, 3 19:38
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling z(Int, Int, Int) will never work with proto signature ($, $?)
at <tmp>:1
------> 3proto z($, $?) {*}; 7⏏5z 1, 2, 3
geekosaur hypothentically it could go digging for all possible implementations, but that could take a long time even given that it's an error message
comborico1611 But I want to be vocal in case my newbieness DOES find an legitimate LTA error message.
Newbies are good at producing unexpected errors. 19:39
Zoffix m: proto z($ where rand) {*}; say z "x"
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling z(Str) will never work with declared signature
at <tmp>:1
------> 3proto z($ where rand) {*}; say 7⏏5z "x"
Zoffix Well, you found at least 1 bug :) That's missing the declared signature
19:40 zachk left, zachk joined
comborico1611 Zoffix: I did? Haha 19:41
I remember a while back someone thought something was worthy of a report.
tobs does the "where rand" constraint produce a function that's almost non-callable? 19:44
Zoffix R#1746
synopsebot R#1746 [open]: github.com/rakudo/rakudo/issues/1746 [LHF][LTA] Error missing declared signature if `where` clause is used in proto
geekosaur intercal, only more so 19:45
timotimo "where rand" will almost always succeed, given how unlikely it is for rand to result in exactly 0
Zoffix tobs: pretty much. The given argument would have to be numerically equal to the value produced to rand
timotimo oh
tobs :)
timotimo of course it's that way
tobs ah, it's a smartmatch.
Zoffix timotimo: it'd be 0 if it were `where {rand}`. A thunked `where` ain't got a block 19:46
m: -> $ where {42} {}(10)
camelia ( no output )
Zoffix m: -> $ where 42 {}(10)
camelia Constraint type check failed in binding to parameter '<anon>'; expected anonymous constraint to be met but got Int (10)
in block <unit> at <tmp> line 1
Zoffix m: -> $ where 42 {}(42)
camelia ( no output )
Zoffix wait, it'd be anything BUT 0 :) 'cause it'd need to be truthy :) 19:47
R#1747 19:51
synopsebot R#1747 [open]: github.com/rakudo/rakudo/issues/1747 [LHF][LTA] X::TypeCheck::Argument could use a minor wording tweak
Zoffix comborico1611: ^ I think that'd address it in some way. We can't really say "passed to many arguments" since there are many other ways to violate the sig of the proto
Zoffix &
19:51 Zoffix left 19:53 lindylex left 19:54 lindylex joined 19:55 pharv left 19:57 pharv joined 20:01 pecastro joined 20:12 lalitmee left
Geth ¦ perl6.org: zoffixznet self-assigned Implement Perl 6 Academy for use as call to action on marketing pieces github.com/perl6/perl6.org/issues/107 20:14
20:19 simpleseeker joined 20:22 pharv left 20:29 AlexDaniel left, khisanth__ left 20:35 pmurias left 20:36 TEttinger joined 20:39 pharv joined 20:41 pharv left 20:42 khisanth__ joined 20:46 AlexDaniel joined
comborico1611 AlexDaniel: I'm not sure how to put that Issue into a label. 20:47
And, I hope that qualifies for LTA.
AlexDaniel you mean R#1748 ? I've already added a label 20:48
synopsebot R#1748 [open]: github.com/rakudo/rakudo/issues/1748 [LTA] LTA: Clunky expression in error message ("Useless use")
20:48 markong joined 20:49 Guest629 joined
AlexDaniel if I understand correctly, non-members of the rakudo github org can't add labels 20:49
comborico1611 Yes. I was just explaining why I didn't add the label myself.
AlexDaniel which is not cool
comborico1611: ah yeah, don't worry about that, you did it right
20:49 vcv left
comborico1611 I see. Very good. 20:49
20:52 pharv joined 20:53 pharv_ joined, pharv left 20:55 mcmillhj left
comborico1611 AlexDaniel: The "useless use" phrase showed up in another error message. : -( What should I do? 21:00
21:00 mcmillhj joined 21:01 Kaiepi joined
Kaiepi m: say $*VM.osname 21:01
camelia linux
Kaiepi m: chdir '~'
camelia Failed to change the working directory to '/home/camelia/~': does not exist
in block <unit> at <tmp> line 1
Kaiepi should this work?
AlexDaniel comborico1611: what do you mean? If it's something about the bug report, feel free to click the pencil button and edit it
geekosaur no
~ is shell magic
21:01 bazzaar joined
Kaiepi ah 21:01
comborico1611 AlexDaniel: Alright.
21:02 lindylex left
AlexDaniel m: chdir $*HOME 21:02
camelia ( no output )
AlexDaniel m: say $*HOME
camelia "/home/camelia".IO
AlexDaniel m: say “$*HOME” 21:03
camelia /home/camelia
AlexDaniel Kaiepi: ↑
geekosaur perl 5 used to try to make it work in some circumstances (I don't know if they stopped at some point). it was never consistent, and if it leaks through to the OS then the call will fail
AlexDaniel geekosaur: haha
Kaiepi ah
bazzaar o/ perl6
geekosaur unless it goes through a shell without quoting, in which case the shell wille xpand it 21:04
AlexDaniel geekosaur: at first it was funny, now I'm about to cry… please stop! :'D 21:05
21:05 mcmillhj left
AlexDaniel though I'm interested to know what perl5 was doing exactly 21:05
Kaiepi m: my $conf = '~/Documents'; $conf ~~ s/\~/$*HOME/; say $conf 21:06
camelia /home/camelia/Documents
Kaiepi alright i think i know what to do now 21:07
thanks
AlexDaniel oh, it was in angle quotes I think < >
bazzaar I'm just viewing "gpw2016 Bernhard Specht - ‎the beauty of perl6‎" talk [youtube video], the first example RLI encoding
El_Che releasable6: status
geekosaur should be a thing in perlguts to expand ~ and ~user, but if an XS or etc. uses a filename and doesn't call it then the ~ goes untranslated
releasable6 El_Che, Next release in ≈2 days and ≈21 hours. 7 blockers. 224 out of 241 commits logged
El_Che, Details: gist.github.com/afac81adab322c60fa...ae119ff900
geekosaur ~ is in general a lot of "too clever", and not just in p5 21:08
bazzaar m: my Int @bits = "0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1".words».Int;
camelia ( no output )
comborico1611 Why does leaving the ( ) off trip a warning? sub do_twice($code) {$code; $code}
geekosaur use of ~ in filenames is a C faq, I think
comborico1611 Versus: sub do_twice($code) { $code(); $code() } 21:09
bazzaar but, putting the method call on a separate line doesn't
geekosaur use/mentuon distinction
21:09 wamba left
AlexDaniel comborico1611: the warning is correct, because just “$code;” does not call the code 21:10
21:11 DrForr left
comborico1611 Hmm. I see. 21:12
21:12 DrForr joined
geekosaur think about it. if it did then you couldn't pass it to the sub in the first place 21:13
AlexDaniel Kaiepi: why do you need this by the way? ~ is a valid file/directory name so you shouldn't be replacing it like that
bazzaar: sorry, what's the question? 21:14
comborico1611 I will start using () then to play it safe.
AlexDaniel m: my Int @bits = "0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1" .words.map: *.Int 21:15
camelia ( no output )
AlexDaniel bazzaar: you want something like this but with », right?
bazzaar sorry, I wasn't very clear, the presence of a newline between the string and .words brings up an error 21:16
21:16 mcmillhj joined
AlexDaniel you can try this 21:16
m: my Int @bits = "0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1"\ .words».Int
camelia ( no output )
AlexDaniel m: my Int @bits = "0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1"\␤.words».Int # testing with a newline
camelia ( no output )
AlexDaniel so called “unspace” docs.perl6.org/language/syntax#ind...ax_Unspace 21:17
El_Che: note that this release will be late (kinda obvious given 7 open blockers) 21:20
bazzaar AlexDaniel: thanks for the Unspace link, I can see it is documented that I should escape the whitespace in front of the method call
AlexDaniel bazzaar: not always, but in complex cases yes 21:21
21:21 mcmillhj left
AlexDaniel m: say 25 . sqrt 21:21
camelia 5
AlexDaniel in this case . works like an infix operator 21:22
so you can have whitespace around it without unspace
bazzaar I see, ... I wonder if the hyper causes the complication, since the error says "missing << or >>" 21:25
21:31 Guest629 left 21:32 devmikey joined 21:33 stmuk_ joined, mcmillhj joined 21:35 stmuk left, simpleseeker left 21:36 simpleseeker joined 21:38 mcmillhj left
bazzaar m: my Int @bits = "0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1"\␤.words».Int; say @bits; 21:39
camelia [0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1]
21:40 devmikey left
bazzaar that last codeline seems to fail on my Rakudo Star 2018.01 linux, says "expecting postfix" after the escape char 21:44
21:44 mcmillhj joined
timotimo did you use an actual newline? 21:46
because camelia will translate ␤ to a proper newline and back, because irc doesn't do multi-line text
bazzaar timotimo: aaah, that explains it, sorry my bad, didn't realise that's what Camelia did 21:49
21:49 mcmillhj left 21:51 dugdig left 21:52 char_var[buffer] left
timotimo no prob :) 21:54
21:59 pharv_ left 22:00 mcmillhj joined 22:01 pharv joined 22:02 pharv left 22:03 pharv joined 22:05 mcmillhj left 22:06 alpha6 left 22:09 simpleseeker left 22:13 mcmillhj joined 22:14 alpha6 joined, bazzaar left 22:16 robertle left 22:17 pharv left 22:18 mcmillhj left 22:24 mcmillhj joined 22:31 mcmillhj left 22:34 pharv joined 22:36 cozachk joined 22:37 mcmillhj joined, releasable6 left, releasable6 joined, ChanServ sets mode: +v releasable6 22:39 zachk left 22:41 mcmillhj left 22:43 pharv left 22:47 pharv joined 22:50 mcmillhj joined 22:55 mcmillhj left 22:59 zachk joined 23:00 cocozachk joined 23:02 cozachk left 23:04 zachk left
Herby_ o/ 23:06
\o 23:08
comborico1611 Hello 23:09
23:10 cozachk joined 23:13 cocozachk left 23:19 mcmillhj joined 23:22 cozachk is now known as zachk, zachk left, zachk joined 23:24 mcmillhj left
comborico1611 Wondering why this very simple program isn't doing what I want: hastebin.com/kitibizesa.pl 23:25
23:26 cozachk joined
tobs comborico1611: what do you want? (You never use the return value of do_twice, for one) 23:29
comborico1611 Oh! Let me try that real quick. Thanks 23:30
23:30 mcmillhj joined, zachk left
tobs ah, wait. I think I get it. You expect the "x 2" in do_twice to execute your "say" twice? 23:31
comborico1611 Right.
tobs But it will just duplicate the return value of the function call, not call the function twice.
comborico1611 I see. That's what I needed to understand! Thanks!
tobs m: -> $code, $val { $code($val) for ^2 }((* x 2).say, "Wall") 23:33
camelia WallWall
WallWall
23:34 markong left
tobs "for ^2" is your do_twice 23:34
23:35 mcmillhj left
timotimo you want xx instead of x here, i think 23:35
m: sub do_twice($code, $val) { $code($val) xx 2 }; sub print_twice($x) { (say $x) xx 2 }; do_twice({ say "i do the $_ 'round these parts!" }, "saying"); print_twice("hello") 23:36
camelia i do the saying 'round these parts!
i do the saying 'round these parts!
hello
hello
timotimo comborico1611: x is string multiplication, that's why it doesn't re-evaluate the LHS multiple times. the xx operator, aka list multiplication, does exactly that, though 23:37
comborico1611 timotimo: Ah yes. It worked. Truly more than one way to do it. 23:39
Thanks!
timotimo YW
comborico1611 LHS?
timotimo left-hand side 23:40
23:42 zachk joined 23:43 mcmillhj joined 23:44 cozachk left 23:45 zachk left, zachk joined 23:48 mcmillhj left 23:54 w_richard_w joined, mcmillhj joined 23:55 cozachk joined 23:57 simpleseeker joined 23:58 zachk left 23:59 mcmillhj left