Perl 6 - the future is here, just unevenly distributed

IRC log for #6macros, 2016-07-01

| Channels | #6macros index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
02:01 vendethiel- joined #6macros
08:49 vendethiel joined #6macros
10:15 vendethiel joined #6macros
13:01 Ven_ joined #6macros
13:01 Ven_ masak: can I use your wisdom for a bit?
13:03 andreoss joined #6macros
13:05 masak all I have available right now is questionable wisdom... :)
13:05 andreoss masak: {{{Q::Literal::None}}} should be None?
13:06 Ven_ actually, it turns out I was right and my test was wrong.
13:06 masak andreoss: {{{new Q::Literal::None()}}}, probably
13:06 masak Ven_: ;)
13:06 Ven_ > ((let id 5 (macro (name) (eval name))) id)
13:06 Ven_ this now prints 5 in my lisp :)
13:06 masak \o/
13:06 andreoss masak: what is `new`?
13:07 masak andreoss: it's a relatively recent keyword -- hold on, I'll get you the issue in question
13:07 masak https://github.com/masak/007/issues/147
13:08 Ven_ I think I can consider this experiment over. I only want to implement quasiquoting, and I can say "I've implemented a lisp"
13:08 masak go for it
13:08 masak and then paste some cool nested unquoting here :)
13:09 Ven_ (let x 3 ((let id 'x (macro (name) (eval name)) id))
13:09 Ven_ also prints 3
13:09 Ven_ whew.
13:10 Ven_ you were right – once lambdas are here, macros are really easy to implement.
13:10 andreoss m: macro m() { my q = new Q::Literal::None(); return quasi { {{{q}}} } ; }; say(m() == None);
13:10 Ven_ my `run_macro_call` is 2-3 lines long
13:11 Ven_ quasiquoting might be more fun to implement, though... sigh
13:11 masak :)
13:11 Ven_ though I think I'm gonna make good use of Perl 5's flattening behavior here
13:11 Ven_ (all this has made me miss Perl 6 quite a bit)
13:11 masak well, you still have it easier than 007 and Perl 6, I'd say
13:11 andreoss shoul it even work now?
13:12 Ven_ Oh, yeah, thousands of times easier: my macros are unhygienic
13:13 andreoss oh..it's 'new Q::Literal::None { }';
13:13 masak andreoss: in 007 -- yes, but I can't currently make it work
13:13 masak andreoss: oh, right :)
13:14 Ven_ also, I know see quasi is really only tied to syntax
13:14 Ven_ that's why it's gonna be so much easier for me. I only have turtles to deal with!
13:15 masak yes
13:15 andreoss masak: also extra parenthesis around {{{}}}
13:18 masak yeah, I can't get it to work either way
13:18 Ven_ masak: do we have anonymous macros, just like anonymous subs?
13:18 masak also, I suspect I just found an untested regression in the middle of all the fail
13:19 masak Ven_: do you mean expression macros? no, not at present. haven't found them useful.
13:19 masak they could certainly *work*, it's just that... it seems to me macros are there to be named and (re-)used
13:20 Ven_ the same certainly could be said for functions..?
13:22 masak no, because you pass the function, and it's useful by virtue of delayed calling
13:22 andreoss masak: how about anonymous objects (without indentifier)?
13:22 masak there's no such mechanism for macros that would make anonymous macros useful
13:22 masak andreoss: `{ foo: 42, bar: 5 }` works
13:22 Ven_ masak: bah, you people with your separated call-time vs run-time!
13:24 masak oh, I stand a bit corrected
13:24 masak we now know of cases where macros (*in quasis*) simply cannot be called directly because their argument ASTs are still unquotes
13:25 masak so yeah, maybe there is a case there
13:25 masak but it still feels a bit hypothetical, if you see what I mean
13:26 vendethiel- joined #6macros
13:30 Ven_ masak: ooh, Dyalog APL just announced that they're making Educational, Personal and Non-Commercial use of Dyalog APL completely free.
13:30 masak sweet
13:30 masak (but off topic, unless it's an APL dialect with macros) :P
13:30 Ven_ I really need to investigate for a Inline::Dyalog module...
13:31 Ven_ who knows if APL has macros *g*
13:33 masak heh
13:48 pdcawley joined #6macros
20:06 ilbot3 joined #6macros
21:55 cgfbee joined #6macros

| Channels | #6macros index | Today | | Search | Google Search | Plain-Text | summary