»ö« 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.
comborico1611 How do you access a program in the REPL? 00:18
MasterDuke committable6: what do you mean access a program? load a script that's in a file? 00:40
committable6 MasterDuke, ¦what: «Cannot find this revision (did you mean “Echt”?)»
MasterDuke heh. oops
tab-complete fail, looks like comborico1611 is gone 00:41
AlexDaniel MasterDuke: try again? 00:44
MasterDuke comborico1611: what do you mean access a program? load a script that's in a file while you're in the repl? 00:50
timotimo something like EVALFILE?
comborico1611 Masterduke, yes. 00:52
MasterDuke then timotimo++'s suggestion is what you want 00:53
comborico1611 Oh. I see now that it can be complicated. Nevermind. Thank you, though! 00:54
I was thinking it was a standard affair. 00:56
It's amazing how well my older computer does with this older version of kubuntu, compared to the newer versions. 01:01
I wonder why i had to use --no-check-certificate to download rakudo through bash. 01:08
Geth doc: 1de9e49efe | (JJ Merelo)++ | doc/Language/subscripts.pod6
Slice examples expanded.

Added a bit of verbiage re-explaining the `*` concept as end-of-collection, and added an example that effectively extracts slices starting with the end of the array or counting from the end.
Hope this closes #1782, if it does not, just let me know.
08:40
synopsebot Link: doc.perl6.org/language/subscripts
travis-ci Doc build passed. JJ Merelo 'Slice examples expanded. 09:01
travis-ci.org/perl6/doc/builds/343267203 github.com/perl6/doc/compare/2940f...e9e49efeb1
moritz PSA/ad of the day: "Perl 6 Fundamentals" is available as an ebook for USD 9.99 today: www.apress.com/us/book/9781484228982 15:43
moritz (it's usually around USD 18 on amazon) 15:45
timotimo alternatively, buy individual chapters for just 30 dollars each! 15:46
moritz yes, a weird leftover from selling 200$+ academic books 15:48
timotimo m)
El_Che moritz: can you tweet is (so it can be retweeted it)? 16:05
El_Che lizmat: ^--- valid until tomorrow included it seems, dunno if useful for the weekly: www.apress.com/us/book/9781484228982 16:07
timotimo El_Che: i think you could use our shiny new notable bot?
Geth perl6.org: 947c13dcd8 | (Zoffix Znet)++ (committed using GitHub Web editor) | source/downloads/index.html
Avoid disambiguation page for zef.
16:14
perl6.org: 22e795272e | (Zoffix Znet)++ (committed using GitHub Web editor) | includes/footer
Avoid zef disambiguation page
16:15
moritz El_Che: already retweeted from twitter.com/Dhabolt/status/965594633710514177 16:42
Geth doc: 9f96ec655b | (Will "Coke" Coleda)++ | doc/Language/containers.pod6
remove trailing whitespace
16:43
doc: c33b6b221a | (Will "Coke" Coleda)++ | 2 files
learn new word, fix typo
synopsebot Link: doc.perl6.org/language/containers
sharksoft why is summing a range absurdly fast? 17:45
what does rakudo do that's fancy?
i.e. why does sum(0..1_000_000_000) returns basically instantly?
MasterDuke sharksoft: Range's sum method knows that if it has integer bounds it can use the formula for the sum 17:47
ilmari s: Range, 'sum'
sena_kun sharksoft, I am not sure how exactly it's implemented internally, but I can guess it uses the formula, see e.g. mathcentral.uregina.ca/qq/database/...6/jo1.html
SourceBaby ilmari, Sauce is at github.com/rakudo/rakudo/blob/f748...ge.pm#L663
sharksoft oh that's awesome
thanks!
lucasb would be interesting if the sum of arithmetic and geometric progressions could also be calculated with a formula 17:51
like 2, 4, 6 ... 100
2, 4, 8, 16 ... 100
but IDK if that's possible 17:52
timotimo should be 18:00
lucasb: you mean the sum of those, right?
timotimo hm, actually, perhaps the infrastructure isn't in place yet? 18:01
let's see
m: my $thing = (2, 4, 8, 16 ... 128) but role { method sum { say "hi i'm your custom sum implementation"; 100_000 } }; say $thing.sum 18:02
camelia hi i'm your custom sum implementation
100000
timotimo s: &infix:<...>, \((2, 4, 8), 128)
SourceBaby timotimo, Sauce is at github.com/rakudo/rakudo/blob/f748...rs.pm#L478
timotimo OK, so if that wants to give any custom sum impl, it'd have to communicate through Seq.new 18:03
timotimo i mean, the knowledge must pass through the return value of .iterator and the constructor of Seq. or that sub could change 18:04
DrForr o/
lucasb timotimo: yes, that's want I meant :) 18:09
*what
lucasb I'm pasting 3 lines here (sorry), for explanation purposes: 18:20
[+] 10, 20 ... 1_000_000 # sum of first N elements
(10, 20 ... 1_000_000)[50_000] # find Nth element
+(10, 20 ... 1_000_000) # how many elements?
If I understand correctly, the result of the 3 operations above can be known by a mathematical formula, correct? 18:21
but since it takes some time to answer, then I guess P6 is adding all those numbers 18:22
this is for arithmetic progression/sequence, but there's also for geometric... 18:23
sharksoft I (without having looked much at the source) think it's actually creating that sequence, then giving you the value
at least that's the only reason I can think of for why (10, 20 ... 1_000_000).elems would take that long 18:24
lucasb sharksoft: I agree :)
skids I don't think anyone has written any optimizer code for such stuff yet. 18:28
Might be a fun project.
sharksoft I'm certainly interested in doing some more numerical work in P6...It's just so much nicer than Python/NumPy 18:29
may dig around a bit and see if I can help out 18:30
timotimo sadly we don't have much multi-dim array features in place :( 18:30
sharksoft yeah I was hoping some of the PDL folks would be interested in porting some of that over
Zoffix Maybe instead of communicating anything through Seq.new, we could add Iterator.sum-only, similar to how we have .count-only/.bool-only, and any Iterator that can compute the sum of the remaining elements (without exhausting the Seq) would return that value 18:31
Zoffix And would clean up impl of [+], 'cause IIRC it just checks if the thing is a Range 18:31
MasterDuke Zoffix++ i like that idea 18:32
sharksoft +1 18:32
MasterDuke now is .product-only going to far though...?
Zoffix Ah, [+] just rewrites the call to &sum' 18:33
skids maybe a "reduce-only" that takes the metaop as an argument.
Zoffix If you gonna give it an op to work with, is there any point for the opt in the first place? 18:34
skids Only if you opt based on that op. 18:34
Zoffix But you can't know what op it is.
Zoffix m: sub prefix:<[+]> { @_.join: '|' }; say [+] (1, 3 ... 11) 18:36
camelia 1|3|5|7|9|11
skids I dunno how things are plumbed, but why couldn't you?
Zoffix Because it could be a user op. IIRC we don't have any user-land markers for "is from core"
Zoffix looks at how static Optimizer got it implemented 18:37
skids Yeah but you just slow path anything you don't have an implementation for.
Just the point being, introducing a function name for every possible reduction seems a bit less firendly to expansion. 18:38
Zoffix I don't follow. How would you "have an implemention for" anything, based on the op that's given you, if you don't know what that op does? 18:39
skids i.e. you decide to do [+] and [*] then the next guy still has no hook to hang [**] on and has to go through adding that as well.
Zoffix How would `.reduce-only` know what operation to perform, without iterating over the entire sequence and freeding each value through the op?
s/free/fee/
skids I would assume the optimizer would look inside the [+], pull out the "infix:[+]" and you do "if $op === &infix:[=]" in reduce-only. 18:40
Zoffix m: sub foo (\op) { dd op =:= &[+] }; foo &[+]; { sub infix:<+> {}; foo &[+] } 18:41
camelia Bool::True
Bool::False
skids erm &infix:<+>
Zoffix OK. +1
Oh, crap.
skids (We do also need to ensure we aren't trying to solve the halting problem too :-) 18:43
Zoffix Well, maybe not crap. But my original idea was the user of the Iterator can just do `can` on the iterator, but now it'll need to `can` + check for some sentinel value from reduce-only that the handler was indeed found
.oO( nqp::can(iter, nqp::concat('reduce-&infix:<+>')) )
18:44
Is that too crazy? :)
skids Unless reduce only tailcalls the normal codegen and so always returns code?
Zoffix No idea what that means. 18:45
timotimo m: multi sub do-it(&infix:<+>) { say "sum" }; multi sub do-it(&infix:<*>) { say "product" }; do-it &[+]; do-it &[*]; do-it &[**]
camelia Ambiguous call to 'do-it(Sub+{is-pure}+{Precedence})'; these signatures all match:
:(&infix:<+>)
:(&infix:<*>)
in block <unit> at <tmp> line 1
timotimo m: multi sub do-it((&infix:<+>)) { say "sum" }; multi sub do-it((&infix:<*>)) { say "product" }; do-it &[+]; do-it &[*]; do-it &[**]
camelia Cannot unpack or Capture `sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{is-pure}+{Precedence}|55052656) ... }`.
To create a Capture, add parentheses: \(...)
If unpacking in a signature, perhaps you needlessly used parentheses? -> ($x) {} vs. -> $x {}
o…
timotimo hm, would have to spell it out i guess?
Zoffix I'm talking about a public method on Iterator. What [...] does is only a tiny part of where it'd be used.
timotimo m: multi sub do-it(&[+]) { say "sum" }; multi sub do-it(&[*]) { say "product" }; do-it &[+]; do-it &[*]; do-it &[**] 18:46
camelia 5===SORRY!5=== Error while compiling <tmp>
Prefix + requires an argument, but no valid term found
at <tmp>:1
------> 3multi sub do-it(&[+7⏏5]) { say "sum" }; multi sub do-it(&[*])
expecting any of:
prefix
DrForr Hrm, 'perl Configure.pl --gen-moar --prefix=...' seems not to generate MoarVM as promised. (first time on this box venturing away from rakudobrew...)
Zoffix DrForr: did you specify --backends=moar? 18:47
huggable: sauce
huggable Zoffix, Install latest version of Rakudo from source: github.com/zoffixznet/r#table-of-contents
timotimo --gen-moar doesn't imply that? though i thought rakudo's configure only(?) has --gen-nqp
DrForr No, but that wasn't mentioned on the download page.
(not deliberately being dense, I just didn't think I would be playing the canary in the coalmine.) 18:48
Zoffix DrForr: what are you running that command on? Rakudo Star download? 18:49
DrForr 2018.01 downloaded directly from rakudo.perl6.org.
Zoffix DrForr: Rakudo Star or Rakudo?
El_Che DrForr: feel free to stick around in #perl6. This is a friendly community
El_Che ducks
DrForr The exact steps on perl6.org/downloads/ - I was having a problem I thought might be relate to rakudobrew, so I finally decided to move away. 18:51
Zoffix I get "Configuring and building MoarVM ..." as the first line of output with those steps
timotimo if it already finds a moarvm, it won't build it for you because you already have one 18:53
DrForr As do I. The problem, unsurprisingly, appears to be permissions on the /opt directory, but I'm unused to the configuration step actually changing stuff, which is causing my expectations to be violated.
timotimo Please be aware, that this will install MoarVM and NQP into your given --prefix before Configure.pl exits. 18:54
DrForr I.E. I can tell after reading the scrollback what the problem is, but I didn't expect configuration to do more than just configure.
timotimo ^- in the readme :)
sharksoft I think I needed sudo to install into opt and got that same error without it
Zoffix DrForr: fwiw, there's also this option, that is closer to using rakudobrew (as in, it's latest released compiler + zef rather than quarterly-released distro of compiler + zef + modules): github.com/zoffixznet/r#table-of-contents
DrForr I understand that, I'm just stating that it seems to be violating my expectations. 18:55
El_Che DrForr: that's a common complaint
AlexDaniel El_Che: I'm not sure how I feel about your remarks :)
Zoffix timotimo: your multi thing doesn't work 'cause `sub do-it(&infix:<+>)` is equivalent to `sub do it (Callable $) {}` with name set to &infix:<+>; it doesn't treat it as a literal to multi-dispatch with
timotimo i know ;( 18:56
El_Che AlexDaniel: I remember mst having a look at it some time ago
timotimo aye, it's rather hairy because of the amounts of information that needs to flow from moar through nqp to rakudo 18:57
DrForr sharksoft: Thanks, this by no means is my first rodeo. I'm just reporting what I feel is an install issue.
El_Che as in "most people expect to be safe until the make install"
timotimo yeah :( 18:58
DrForr El_Che: Nod, that was pretty much my expectation. If I didn't suspect something and were someone just starting out with the software I might have been frustrated enough to give up at that point. 19:00
That also means I need to do 'sudo make' to give the installer perms, and that feels wrong. 19:01
timotimo it'd probably be a good idea to output a piece of disclaimer text before and after doing --gen-moar and such
El_Che DrForr: use my pkgs :)
AlexDaniel huggable: deb 19:02
huggable AlexDaniel, CentOS, Debian, Fedora and Ubuntu Rakudo packages: github.com/nxadm/rakudo-pkg/releases
AlexDaniel hmm
Zoffix m: use MONKEY; augment class Seq { method sum { nqp::can($!iter, 'reduce-+') ?? nqp::callmethod($!iter, :name("reduce-+")) !! self.cache.sum } }; say [+] Seq.new(class :: does Iterator { method pull-one {}; method ::('reduce-+') { 42 } }.new); say [+] (1...10)
camelia 42
55
El_Che ah, it's outdated, also Alpine and OpenSUSE nowadays
DrForr If Ubuntu packages are ready I'll keep that in mind for later. I just thought it was better to report my experiences. 19:03
AlexDaniel huggable: deb is Alpine, CentOS, Debian, Fedora, OpenSUSE and Ubuntu Rakudo packages: github.com/nxadm/rakudo-pkg/releases
huggable AlexDaniel, nothing found
AlexDaniel huggable: deb :is: Alpine, CentOS, Debian, Fedora, OpenSUSE and Ubuntu Rakudo packages: github.com/nxadm/rakudo-pkg/releases
huggable AlexDaniel, Added deb as Alpine, CentOS, Debian, Fedora, OpenSUSE and Ubuntu Rakudo packages: github.com/nxadm/rakudo-pkg/releases
El_Che DrForr: I am joking. Of course compiling is fine for advanced users like you 19:04
DrForr No offense taken. I"m just saying the principle of least surprise seems to be violated. At least for me, and it may be turning other potential users away. 19:05
AlexDaniel if only we could get zef officially packaged for debian… 19:06
DrForr And this should really be taking place on -dev, not here.
AlexDaniel that would make rakudo so much more useful
Zoffix m: use MONKEY; augment class Seq { method sum { nqp::can($!iter, &[+].WHICH) ?? nqp::callmethod($!iter, :name(&[+].WHICH)) !! self.cache.sum } }; say [+] Seq.new(class :: does Iterator { method pull-one {IterationEnd}; method ::(BEGIN &[+].WHICH) { 42 } }.new); say [+] (1...10) 19:07
camelia 42
55
El_Che AlexDaniel: does zef break one of Debian's expectations? (reproducible builds?)
Zoffix hehe, this is awesome.
AlexDaniel El_Che: I don't know, maybe talk to @dod38fr about that 19:08
El_Che AlexDaniel: thx
AlexDaniel El_Che: according to bugs.debian.org/cgi-bin/bugreport....=867237#10 he plans to package modules and not zef, but I don't know the reasoning
.seen dod 19:09
yoleaux I haven't seen dod around.
El_Che Well, there is a workaround for that like perl5 does: include zef (or a variant) in the core distro?
AlexDaniel core distro? 19:10
El_Che like cpan is part of perl5
zef/$some-installer could be part of rakudo
so you get out of the box the possibility to install modules 19:11
El_Che even if better alternatives (e.g. cpanm) exist 19:11
$ dpkg -S /usr/bin/cpan -> perl: /usr/bin/cpan 19:12
El_Che as "go get" is part of golang, and so on 19:13
(this is probably more applicable to #rakudo than to #perl6, but you get what I mean) 19:14
DrForr And at this point the 'Stage parse' is definitely stuck. Package ahoy. 19:17
El_Che DrForr: it's probably not stuck, it's takes some time
DrForr Hrm. I'll nuke and retry, but I do have to get stuff done... 19:18
El_Che DrForr: are you sure it's stuck?
DrForr Probably was runing for ~10min, quite a bit longer than rakudobrew takes. 19:19
Not that I'm criticising. I'll restart and head out to get some shopping done. 19:20
El_Che DrForr: yes, a pkg with a docker build (installing all deps en build-essential) takes less on travis, so yes, it sounds stuck
DrForr Back in a few, need to snarf food. 19:21
Thanks for the confirmation :/ 19:34
package is far far too out-of-date.. 2014.07-4. 19:38
mspo I need to learn how to make .debs 19:43
El_Che mspo: I use fpm for that 19:44
mspo El_Che: I'd prefer to do things properly
El_Che mspo: properly is a relative term :) 19:45
mspo well I prefer to not do it at all, but otherwise..
El_Che mspo: fpm is fine for self contained stuff
DrForr And now I grab the latest Ubuntu in order to actually install docker, as apparently the current VM is stuck between versions that let Docker work. 19:52
El_Che DrForr: I use docker on my home server (Ubuntu 16.04) and at work we use Centos 7 for Docker 19:54
DrForr: both work fine
(I also use docker on Ubuntu 17.10 (laptop) and the latest macos: all without problem)
DrForr Couldn't download the package on whatever version the current VM uses. No worries; I'm understanding more of the user experience new users have, and empathize deeper. 19:55
DrForr 'sokay, moving out of X back to CLI and port-forwarding seems a better way to deal with VirtualBox anyway. 19:57
El_Che DrForr: you know that Docker runs fine on Win10, right? 19:58
DrForr I'm sure it does; I don't need to start learning a new system an hour before bedtime though... 19:59
El_Che DrForr: nothing new. Just install it, and run the regular docker commands in a shell 20:00
b2gills I prefer `reduce:op[ &[+].WHICH ]` over `&[+].WHICH` 20:01
m: use MONKEY; augment class Seq { method sum { nqp::can($!iter, BEGIN "reduce:op<{&[+].WHICH}>") ?? nqp::callmethod($!iter, :name(BEGIN "reduce:op<{&[+].WHICH}>")) !! self.cache.sum } }; say [+] Seq.new(class :: does Iterator { method pull-one {IterationEnd}; method reduce:op[BEGIN &[+].WHICH] { 42 } }.new); say [+] (1...10)
camelia 42
55
DrForr I'm sure; I just prefer to have a UNIX backdrop available.
El_Che DrForr: you l33t haxor
DrForr I was a touch surprised when the best name Ernest could come up with for a darknet trade site was "1337 Haxor Warezhouse"... at that point things started to fall apart for me in the book. (Ready Player One) 20:05
buggable New CPAN upload: Font-FreeType-0.0.6.tar.gz by WARRINGD cpan.metacpan.org/authors/id/W/WA/...0.6.tar.gz 20:30
jimav Hi, Is there a way to see arguments in a backtrace (like in perl5)?
jimav sub func($y, $z) { die "bug in a" }; func(22,33); ... just says func was called without shoing the args (22,33) 20:31
[Coke] You can theoretically get more information with perl6 --ll-exception (but not that) 20:36
jimav How can that be enabled from inside the script (e.g. with "use...something")? 20:37
Voldenet ugh, perl doesn't do that by default, does it? 20:38
I believe Carp does print arguments
[Coke] jimav: can't, as far as I know
I think we'd not want it on by default to avoid logging things that should be confidential 20:39
(even if we did do it - log arguments, I mean)
MasterDuke the arguments are included in some error messages 20:40
MasterDuke m: say "abc".Num 20:41
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5abc' (indicated by ⏏)
in block <unit> at <tmp> line 1
Voldenet jimav: you could write a /debugging/ wrapper though :D
m: sub func($y, $z) { die "bug in a" }; sub d(&code) { return -> |c { CATCH { |c.say }; &code(|c); } }; d(&func)(22,33); 20:42
camelia \(22, 33)
bug in a
in sub func at <tmp> line 1
in block <unit> at <tmp> line 1
Voldenet I bet it could be prettier
Can perl6 decorate its functions, like python? 20:43
jimav Voldenet: That's pretty inconvenient. What if the args you need to see to debug something come from level 42 in a 57-level call? 20:45
Let me restate that: That wrapper better than just putting in print statements (doesn't pollute output until something croaks) 20:46
jimav Voldemort: ...but still requires modifying source code and re-creating the crash exactly the same way 20:48
I would like a way to just enable seeing args on every crash backtrace (at the top of the main unit of a particular script) 20:49
Voldenet ugh, yeah, it's pretty inconvenient like that, I wonder if it's doable 20:49
jimav Does anyone know what perl6 --ll-exception does internally, and whether that (whatever it is) can be done within a script? 20:51
Voldenet m: multi sub trait_mod:<is>(Routine $r, :$debugged) { $r.wrap( -> |c { CATCH { c.say }; callsame; }) }; sub func ($y, $z) is debugged { die "bug in a" }; func(22,33);
camelia \(22, 33)
bug in a
in sub func at <tmp> line 1
in block at <tmp> line 1
in block <unit> at <tmp> line 1
Voldenet okay, this is a bit more convenient
you can just append "is debugged" to the method
MasterDuke --ll-exception mostly just doesn't truncate the backtrace at where user code stops (as i understand it) 20:54
moritz --ll-exception doesn't do any kind of filtering 20:57
jimav MasterDuke: Yea, I just tried it and args are not shown
Voldenet: Can I add traits to an already-defined sub? Then I could use your idea without having to modify the source code of the subs of interest 20:58
comborico1611 Who's ready for a newb question? 21:07
Voldenet jimav: I'm not sure, I've just learned that it can be done with traits, so I'm not an expert :P 21:24
jimav Voldenet: Ok, thanks. I tried various constructs with "augment" but that seems to only work for Classes. 21:28
I've got to go. Cheers.
[Coke] comborico1611: just go ahead and ask it. 21:29
comborico1611 When you are working with an editor that has autocomplete, are you suppose to just type the closing parens or quotes along with what is already there? I undersatnd it will replace the autocomplete, but it seems like what's the point? Why not just not have autocomplete, or am I doing something wrong? 21:30
[Coke] ok, that I cannot help with. :) 21:31
comborico1611 Heh. Autocomplete with parens and quotes seems stupid. 21:32
sena_kun comborico1611, well, the thing is that editor cannot(or, well, doesn't do that properly, at least) "guess" where you want to stop type your arguments to move further. But I still think it's a nice feature, because you have less chances to forgot to close some )))))) in the end. 21:34
just an opinion, of course
comborico1611 sena_kun: I see.
I don't see it hurting, as long as I get use to it. At the moment, I find it distracting -- I add spaces often. Example ( stuff here ). 21:36
And ( "string" ) is weird because I'm adding spaces next to existing characters. 21:37
Thanks for the feedback, though!
Voldenet autocompleting parens and brackets is a bit annoying 21:37
sena_kun comborico1611, I hope you still can disable autocomplete if you control your text editor. :) 21:38
comborico1611 sena_kun: I'm currently experimenting with a new one (Atom). I typically use Emacs, but I'm getting frustrated by the complexity. 21:39
Xliff If I create an action class for a grammar, will that grammar act on rules, even if those rules are defined in another module? 23:17
s/that grammar/that action class/ 23:18
lizmat And another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/02/19/...6ya-giris/ 23:29
comborico1611 Yay! 23:34
TimToady Xliff: as long as any rules or actions of a given name can be found by ISA relationship, sure 23:35
comborico1611 So I was pondering this week about learning Common Lisp. It was like pulling teeth to get the guys over on the lisp channel to write me up a sample request program. I can see why now. It took forever. I took it for granted that it was short in Perl6. 23:42
MasterDuke i looked a little bit a common lisp, but didn't really like it (couldn't really say why exactly), but really like racket (formerly known as PL Scheme) 23:45
comborico1611 MasterDuke: Want to see a comparison of the two for a program that converts seconds into years months days hours mins seconds? 23:47
MasterDuke sure 23:50
comborico1611 MasterDuke: gist.github.com/COMBORICO/7c443861...d482761b30 23:52
MasterDuke so many lines 23:55
comborico1611 It is quite strange. 23:56
MasterDuke fwiw, polymod could be used for an alternate perl 6 version. docs.perl6.org/routine/polymod
comborico1611 Hmm. Thank you! 23:57
lucasb comborico1611: how the forth CL version works? the function evaluates perl syntax given as s-expressions? 23:58