« first day (3811 days earlier)      last day (1036 days later) » 

12:00 AM
hyper-neutrino has added an event to this room's schedule.
 
Hmmm, I might be awake and coherent enough at 9am :P
 
And we didn't even bookmark the last two events :/
 
I think I only did that for one because someone missed it
 
They are kind of hard to bookmark as well
 
also they are usually too long
this one is at 4AM for me. still wondering if I'll sleep early and get up then or just stay up til like 5 or so
 
12:02 AM
The last two events
 
Very unepic
 
Is there anything stopping us from BMGing problems which are in the works/sandbox, and then officially posting them later?
 
typically challenges that get significant activity as a CMC aren't great to post to main cuz so many people already solved it
there isn't anything really forbidding it though
 
Also, complex problems are not suitable for CMCs
 
12:14 AM
@hyper-neutrino Sure, but then the people that solved it would post the answers and get rep & more recognition for work they've already done. So I can't imagine they'd be complaining
 
Right, and everyone who wasn't in chat doesn't get a chance because the question is posted and a bunch of people already have answers. So I can see them complaining.
hm, I got my bytecount near halved on the Z challenge, but jonathan self-deleted.
 
They only have a disadvantage for FGITWing it. I don't see how that's meaningful though.
Checking TNB gives you the advantage instead of checking the network hottest questions board giving you the advantage. They both seem equally doable & arbitrary to me.
Oh shoot, sorry. I thought I was in TNB. Can an RO move this there, please? It's just taking up space.
@hyper-neutrino
 
10 messages moved from BMG Drafts
 
Thoughts anyone on BMGing problems and then posting them later?
 
CMCs are often simpler than main challenges
 
12:24 AM
I know, but I have some I can CMC that I also intend to post.
 
If you think of a challenge, I'd suggest either posting it as a CMC (maybe as part of BMG if the timing works), or post to main, depending on the complexity
@AviFS FGITW is already a bit of a problem here, there's no need to exacerbate it by allowing some users to solve it first
I suppose if you wait long enough between the CMC and main, it's better, as people will just forget and delete their solutions to CMCs, but still
 
I see, that's fair. Thanks!
What do people think of the 'tarpits' draft category? It'll give people a chance to play with the less powerful langs but let them stay in the game and not take forever, since we only have an hour.
No strict requirements on what it means to be a tarpit, of course. And it depends on the problem domain. Eg. /// is a tarpit re: number/list manipulation but not for string-replacement.
It just means, "please refrain from showing off your builtins for this challenge"
 
I'm not a huge fan; if a challenge requires a restriction to be interesting, it probably isn't interesting. At least generally - exceptions obviously exist, but this is usually true.
 
@hyper-neutrino It's not a restriction, though. It means "powerful langs, this isn't really for you; you already have all the other problems to solve. This is for the langs where this is a nontrivial problem"
Eg. the langs you don't want to be using for the other problems when you only have an hour
It just means "harder-to-use" langs still have something to do
 
I see no harm in having them
Worst case scenario: no one answers
47 mins ago, by caird coinheringaahing
Q: " is Jelly's "vectorise" quick. For a function f and two lists, it is basically [1, 2, 3] f" [4, 5, 6] -> [1 f 4, 2 f 5, 4 f 6]. What should it do if f only takes 1 argument, and what if f takes 0 args?
 
12:41 AM
for monads, yuno just does "each" but doesn't auto-range if the value is not a list
for nilads, it just errors right now
 
I think for nilads, I might just do the same as <nilad>€, but not range casting
 
When do we start voting?
 
So 5 0" is [0], 1,2,3 5" is [5,5,5]
 
you could also make it indicate vectorization depth
 
@AviFS Whenever you like, just star drafts you think are good
@hyper-neutrino That's better
requires un-inlining the call, but that's fine :P
 
12:45 AM
lol
alright, canceled all the draft room stars, so you can just star drafts that you think are good whenever you want
 
I'm converting all the hypers to quicks in my fork, as Dennis said he was working on doing that
Figured I might rework some of them while I do so (e.g. remove ')
 
oh, so there being both hypers and quicks isn't intended? :p
 
Uh oh... bug, I think?
 
well not unintended, but like, not the way dennis wants it to be designed
 
I'm trying to restar posts I had starred before and I get "It is too late to undo this operation"
 
12:49 AM
@hyper-neutrino Kind of
 
also yeah ' is weird. it's broken, isn't it?
 
As though it thinks I'm trying to unstar, without realizing someone else has already unstaarred
 
@hyper-neutrino Fully broken for dyads, works but is useless for monads
 
@AviFS It's SE chat, what do you expect
2
 
in Jelly, Mar 11 '18 at 13:08, by user202729
What's the difference between a hyper and a quick taking one argument?
 
12:50 AM
nice
 
in Jelly, Mar 22 '18 at 14:58, by Martin Ender
the esolang I'm working on has Eisenstein integers, and while they're a bit gimmicky I was wondering whether a golfing language could use them to make hexagonal grid challenges easier
 
It's ironic because the ones that were highest-voted before, won't be voted at all anymore
 
Time to add Eisenstein integers to Jelly :P
@AviFS Wait, why are you trying to restar previous ones?
 
@cairdcoinheringaahing They were unstarred when the voting began.
It was yours I was trying to star, actually. You had 3 before.
 
wait, did I unstar one that was posted today?
 
12:54 AM
So 3 of us won't be able to vote on it again...
@hyper-neutrino Didn't you?
The only stars I see are two that I just added just now.
 
Oh, right
Only vote for the most recent round of drafts. The previous ones have already been done
 
which one
 
Do you see more than two stars?
The one I'm referring to that had 3 stars before was:
> Draft: Given n, output all reduced proper fractions with n as the denominator (e.g. 3 -> 1/3, 2/3, 8 -> 1/8, 3/8, 5/8, 7/8)
 
Yeah, that's already been done as part of a previous BMG
 
Oh...
I'll be in CGCC Discord's #The-Nineteenth-Sound-Byte during the event!
Feel free to join!!
 
12:58 AM
invitation for anyone who wants
 
...
Nevermind, it's 8 UTC :/
 
Fun fact (this seems wrong but): ' has never been used on a monad in a Jelly answer
 
Correction: I won't be in the voice chat, nor in TNB for that matter
 
@AviFS No, it's 8 UTC
 
1:00 AM
oh yeah what was that thing you said i couldn't do @cairdcoinheringaahing
kick OSP?
 
Doesn't look kicked to me :P
 
@Bubbler Corrected! But still 1 AM local time (PST)...
 
no i didn't try but like
was that the thing you said i wouldn't be able to do? :p
 
Yes :P
Or rather, break it by kicking it :P
 
aight, i will remember to try next time :p
 
1:01 AM
I can kick it rn, but it won't have any effect: see
 
In order to break it, you have to kick it in the millisecond where it's still running. Otherwise, it's already shut down and doesn't care :P
 
yeah, nvm i'm not gonna bother trying :p only way i could do it that fast is to run a script and a) that's dumb b) it'd probably not work correctly and then i'll have a fun time explaining to CMs why i kicked everyone in the room 10 times per second :p
 
Feel free to try to ninja it by hand tho :P
You know exactly when it'll join, maybe you'll be fast enough :P
 
I can try, but I doubt i'll get it in time, and it'll just be annoying to the other ROs :p
 
1:44 AM
@DLosc Interesting that other countries (from me) interpret it as "wrong"
 
Yeah. Somehow I seem to vaguely recall a checkmark being used to mean "wrong" on schoolwork from my early childhood, which is weird because both I and my parents grew up in the U.S... Maybe I'm mis-remembering.
 
 
1 hour later…
3:16 AM
hi guys
 
Hi! Welcome to TNB!
 
thanks, i dont use stackexchange a lot and i didn't know there were chatrooms haha
 
They don't exactly advertise them that much :P
 
3:55 AM
@RachitArora howdy!
CMQ: Are you signing up for the github copilot technical preview?
 
we already have you for AI generated crap
5
 
@lyxal Until AI can outgolf me in Jelly, I'm unimpressed
 
4:16 AM
@JoKing what about code crap?
 
@PyGamer0 i make enough of that myself thank you very much
 
@hyper-neutrino Implemented :P
 
nice :P gonna steal that too
wait it was my idea
 
It's absolutely disgusting, but it works :P
 
uh oh, what did you do :P
is it as disgusting as this
return attrdict(arity = 1, call = lambda x: Y(lambda f: lambda v, r: v if r == 0 else (ut(link.call) if r < rep else link.call)(f(f)(v, r - 1)))(x, rep))
 
4:22 AM
[1,-],[2],[[8,4]],3 +0,1,0" 4,[5,6],[5,5,5],7 is valid, guess what it returns :P
 
wait, your vec depth is a list?
i'm concerned
 
Hwllo
 
hewwo
 
wwwww
 
Answer: [[5, 3], [7, 6], [[13, 9], [13, 9], [14, 10]], 10]. Essentially, when it has a nilad passed to it, it either: uses the nilad as the depth for each vectorised application if the nilad is an integer, or uses each element of the list as the depth for each vectorised pair if it's a list
 
4:24 AM
that is kinda confusing lol
 
Wait, the list should have had [5,5,6] not [5,5,5] :/
 
So for that example, it does 1,- + 4 at depth 0, [2] + [5,6] at depth 1, [[8,4]] + [5,5,5] at depth 0, then 3 + 7 at the default depths for +
I foresee no confusion arising from this :P
 
That's very, uhh...
 
Does INTERCAL have FOUR loops?
 
4:27 AM
but using + was not a good example I guess
 
NGL, I don't ever expect that to be used
But, I've consistently been surprised at what people here will (ab)use, so who knows?
And, it's fully backwards-compatible with current " usage, which is more than I can say about a lot of my modifications :P
 
i always use , to test stuff
 
So, I've been thinking about making a TIO clone, but nothing server-side (JS / JS-interpreted only). I had the idea of just having a list of script urls, so I can just import the requested language from someone else's repo without me having to constantly update everything. Is this a good idea?
 
@hyper-neutrino I tried that, but having no ldepth or rdepth made it difficult to test
 
that sounds like bubbler's but in JS rather than Rust (what did you call it again?)
@cairdcoinheringaahing ah, unfortunate
wait so if 1,- + 4 is at depth 0
why not [1, -1, 4]?
 
4:32 AM
@Ausername I expect that a few interpreters will be very large, and can take a lot of time to import
@hyper-neutrino depth 0 means that it operates on characters and integers, so 1,- + 4 at depth 0 is 5,3
 
wait i forgot that depth counts from the bottom lol. am smart
 
depth 1 is that it operates on 1-dimensional lists, depth 2 is 2-dimensional lists and so on
 
so why is [2] + [5, 6] at depth 1 not [2, 5, 6]?
 
True - that's one of the problems with dynamic import... But it's probably going to be simple stuff.
 
is it cuz + vectorizes itself anyway
 
4:34 AM
Various Deadfish dialects / 2d stuff / other esolangs
S10K maybe
 
@hyper-neutrino Try it online!
It should be :/
 
.-.
yuno has a problem which is that uh
the vectorization isn't part of the atom that can be modified
it is embedded in the call function at runtime initialization
 
does biweekly mean every two weeks or twice a week?
 
once / 2 weeks
the latter is semiweekly I believe (don't quote me on that)
so this could've been called the semimonthly mini golf
 
> biweekly can be “twice in a week” or “every other week"
 
4:39 AM
@hyper-neutrino Because it's [2] +" [5, 6]
 
probably better to just use "fortnightly"
 
Ooh, I can actually come to this BMG
 
I forgot how " works :/
 
"The mini golf that happens once every approximately two weeks"
" only vectorizes once right?
 
4:40 AM
Yes
 
Essentially, it applies <link>" to each pair, at the given depth
Given how rarely depth is actually used for golfing, and how weird this is to actually use, I very much doubt it'll actually be used :P
But, it's there if someone wants to :P
Or rather, it will be when I push to github :P
 
i mean, usually we don't work with depth beyond like 2, but it's a cool gimmick
i mean, way better than erroring, at least
 
It still errors, but if the depths given don't make sense :P
For example, [[8]] +" [5,6] at depth 2 fails, as it tries to do [8] + 5 (Python's +), which is a TypeError
 
4:43 AM
Indeed :P
Although it also now works for monads, which actually might be more useful
 
<monad>" is equivalent to <monad>€, but you can now specify the depth to vectorise to
 
including autoranging?
 
So <monad>2" vectorises at depth 2 etc.
@hyper-neutrino No, it wraps
 
wdym by that
oh like [x]
i thought you meant wraps as in repeats the list to fill :p
 
4:46 AM
Given that it uses recursion to apply the depth, auto-ranging would infinitely recurse :P
 
uh
nice :D
 
That's not actually my fault :P
 
you know what's annoying tho
working with depths with infinite sequences
cuz you can't just do max(map(depth, x)) + 1
 
The monadic_link builtin already uses recursion, then the vectorise function I wrote has to use that in order to run, which just kick it back to vectorise later on :P
 
4:47 AM
@hyper-neutrino Can't say I've ever done that
Although, you can have an infinite sequence with a finite and known depth
 
yeah
some of my sequences have a depth attribute built-in; otherwise, i think they assume depth 1
 
Also, I implemented the version of y that can handle longer elements, and I hate how Dennis implemented y in the first place
 
for example, ᴋɪ, which is the entire gaussian integer grid, has a set depth of 2
 
That's an interesting builtin
 
@cairdcoinheringaahing ooh, nice
 
4:49 AM
	while mapping:
		source = iterable(mapping.pop(0))
		destination = iterable(mapping.pop(0))
		for (index, item) in enumerate(array):
			if item in source:
				array[index] = destination[min(source.index(item), len(destination) - 1)]
 
does it delete elements if the substitution has odd length
 
@hyper-neutrino I even made it one byte: :P
@hyper-neutrino Yes
 
nice :D
i have u for jelly-like substitution (but without breaking on odd length) and v for sublist substitution
 
1,[2,3],4ẏ replaces 1 with [2,3] and removes 4 :P
 
i am currently suffering because doing sublist substitution on infinite sequences is rather annoying
it'll be like O(NM) per element :p
 
4:51 AM
@cairdcoinheringaahing +10 (aka an upvote) to anyone who can explain to me why this was written like this
 
funny
 
I just used a split_at then join approach for :P
 
It works ¯\_(ツ)_/¯
 
that might not be a bad idea
other than the fact that it'll be super inefficient for infinite sequences
also idk if i have sublist split but it shouldn't be too bad to implement
wait i don't even have normal split-at implemented
 
4:52 AM
Spent ages messing around with split_windows and remerging, then went "hang on, I already use split-then-join in Jelly, just do that" :P
 
using classes as decorators was asked about in the past, but is it cursed to decorate classes?
 
Wait, it's split_rolling same thing :P
141
Q: How to decorate a class?

Robert GowlandIn Python 2.5, is there a way to create a decorator that decorates a class? Specifically, I want to use a decorator to add a member to a class and change the constructor to take a value for that member. Looking for something like the following (which has a syntax error on 'class Foo:': def get...

TLDR: Metaclasses
 
ok that's even more cursed than what i'm doing
i just want to apply a decorator to the init to add it to the verb/adverb registry
 
Cant you just do the @decorator above the def __init__?
 
idk, haven't tried. i do know that putting it above the class def works
 
4:55 AM
Or, given that decorators are just syntaxic sugar for foo = decorator(foo), why not just do that?
 
@Verb("ᴀa", arity = 2)
class arithmetic_sequence(sequence):
    def __init__(self, x, y):
this works fine, i'm just wondering if it's cursed or not
oh i forgot i had this running
yeah so it appears our dynamic bounties ad is stable again; it's returned 39k consecutive status-200s over the past ~11 hours
 
1 every second?
 
Man, every time I look at the neighbors source code, it gets more and more cursed
 
figured if it rate limited me i'd just close it but it never did
 
4:58 AM
In order to make monads act as ,<monad>¥, it just passes [x, y] as the argument to monadic_chain ಠ_ಠ
	chain = dyadic_chain if links[-1].arity == 2 else monadic_chain
	return [chain(links, list(pair)) for pair in zip(array, array[1:])]
Because monadic_chain has the signature monadic_chain(chain, argument) and dyadic_chain is dyadic_chain(chain, (left, right)) ಠ_ಠ
 
this looks fine to me?
maybe the code i'm writing is just too cursed
 
idk seems really abuse-y to me :P
 
i mean my JS implementation of yuno was even worse
 
Basically just taking advantage of the different signatures of monadic_chain and dyadic_chain :P
 
you could just call with (x) and the y would just be undefined
and you could call with (x, y) and the latter argument would just be dropped automatically
 
5:01 AM
@hyper-neutrino It's JS, it's always at least 30% cursed
 
true
also i had a file with over 2000 LOC (a lot of whitespace but still) because funny
let _gt = (x, y) => yunoify((x.type == "sequence" ? (y.type != "sequence" || _seq_gt(x, y)) : (y.type != "sequence" && GT(x.type == "number" ? x.value[0] : x.value.charCodeAt(0), y.type == "number" ? y.value[0] : y.value.charCodeAt(0)))) ? 1 : 0);
i apparently wrote this
yeah that looks like something i'd write
 
It looks like something redwold'd write.
I thought you were more civilised...
 
@hyper-neutrino I have no idea what this does :P
I also don't know why you have .charCodeAt in there
 
@cairdcoinheringaahing it checks if x > y, except factoring in infinite sequences, and also numbers and chars get compared by codepoint, and also i am using a modified greater-than function because i implemented a custom number representation because JS doesn't have built-in complex numbers
 
@hyper-neutrino Thoughts on ' acting like þ but it's a "flat" list (e.g. 5,'3 is [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3], [4, 1], [4, 2], [4, 3], [5, 1], [5, 2], [5, 3]])?
 
5:05 AM
this is my exponentiation function
@cairdcoinheringaahing instant +1
would save a lot of tighten / tighten$ s and ' is useless now anyway lol
 
Agreed, þ`Ẏ and þ`F are pretty common
 
wait did I set BMG's timing wrong?
lol, what the hell
when i go to the schedule tab in chat, it says "in 3 hours"
the email I got earlier says "in 2 hours", and the upcoming event on the main page says "in 2 hours"
also TFW only two people have registered. i might not even still be up by then
 
Hovering over the times on both the main page and the schedule shows the correct times
 
cursed SE things ¯\_(ツ)_/¯
 
@hyper-neutrino I never bother to register because if I'm here, I don't need the ping and if Im not here, the ping won't tell me to be here :P
 
5:09 AM
fair enough
 
Assuming I can grab an iced coffee before hand, I should be drugged up caffeinated enough to participate :P
@hyper-neutrino I'm thinking I keep the <monad>' functionality, given that works, and replace the dyadic version with "þ but flat"
 
so like 4Rs2U' gives [[3, 4], [1, 2]]?
huh.
yeah, i think that makes sense
 
U' is just
 
nice
and 1,2,3+'4,5,6 is cursed
 
And s casts to range, making that 4s2Ṛ :P
 
5:15 AM
right
just wanted an example :p
 
@hyper-neutrino Agreed :P
Having ' work on monads could allow for the freeing up of a couple of monadic atoms
 
true, but it'd also reduce golfing in some places
 
e.g. I doubt is used so much that ¬' would be too bad
 
oh, true
i am using ' as modified ¤ (which is ° in yuno) - instead of finding the first nilad (other than an adjacent nilad) when scanning back, take the longest LCC it can find
how does / work on monads in jelly
 
Isn't that what ¤ does?
 
5:17 AM
oh it doesn't
@cairdcoinheringaahing no, that finds the shortest nilad followed by monads/dyads chain
 
@hyper-neutrino It doesn't, unless you append it it with µ (e.g. Hµ/)
 
@hyper-neutrino Can you give me an example of the difference?
I think and are the only builtins which are ' applied to a monad. doesn't get used, full stop. is slightly more contentious
 
with jelly's: Try it online!
with my get-LCC one: Try it online!
 
5:21 AM
that's cuz 1,2,3 is a nilad
 
; might have been a better example :P
 
yeah lol...
yuno doesn't use , for list literals lmao
 
I'm surprised +1;2;3¤ doesn't take the longest LCC, I thought it did
 
¯\_(ツ)_/¯ i've wanted one for a while now to avoid the double or even triple-¤ i sometimes end up doing
only very occasionally tho ¯\_(ツ)_/¯
 
Course Dennis would say that if you have more than one ¤, you're doing it wrong :P
 
5:28 AM
true :p
 
hi everyone
when did last BMG end
 
@hyper-neutrino Thoughts on a "last N links as a monad" builtin (e.g. abcdef6Ɗ)? I'm not sure if it's necessary, as Ç is the same length
@wasif 2 weeks ago, the next one is starting in 2 and a half hours
 
Nice
I might be able to participate
 
@cairdcoinheringaahing the only time i'd see this being useful is if you need several helper links and either want a footer link or are already using last/next and need a third helper link
so i tihnk something else would probably be more useful (can't think of what though)
 
Might be worth a digraph
 
5:34 AM
well, then you wouldn't be saving any bytes over the nth-link-as-?ad quick
 
e.g. nÐÇ is "last n links as a monad"
@hyper-neutrino You would if you needed a 3rd helper link, as you'd need <index>Ŀ + newline
 
isn't 3 = 3
random shitty idea: have a ton of digraphs under the same initial character that just implements a crap ton of common combinators
like F<something> == ,F¥ (although that doesn't save bytes, but just as an example)
 
@hyper-neutrino Depends which 3 character you use :P
Ok, how about a Y combinator builtin? Or is that useless without lazy eval?
 
how would that work exactly
Y f is f Y f right?
 
Yes, I believe so
 
5:37 AM
if you have a byte, you could use it on }¥
 
Wait, isn't Y just a fixed point combinator?
 
or {¥
i think that's the point (ha) in it, yes
 
So it's just ÐL?
 
¯\_(ツ)_/¯ you'd have to ask bubbler about combinators
i think so
 
Y combinator can be made to work with strict evaluation
 
5:41 AM
I have ɦ and ʠ available for quicks before I run out of single-byte quicks, I'm just trying to find uses for them :P
 
i'm assuming you've already run the corpus to check for common digraphs/trigraphs/higher?
 
The corpus isn't great for quick ideas :/
I also have qẉṇỵẓėġṅ available for dyads if anyone has any ideas
Turning either or ƑƇ into single byte quicks might work, but there are better ways to save bytes
@cairdcoinheringaahing I say that, but I've added 5 new quicks just based on the most common digraphs
4 more if we count the trigraphs and quadgraphs :P
 
I noticed the Z matrix can be constructed in a very cool, short way. I realized it only after reading Neil's answer incorrectly :P
CMC: Solve Z matrix in 9 bytes of Jelly
 
uh oh, base conversion
 
5:51 AM
Ooh, here an idea: given a link, map the link over each element, then keep the elements that are truthy under the link. Essentially, <link>€<link>Ƈ
Extracting digits from a string then becomes ~ɦ~
 
wait, so apply the link to each element, and then check truthiness by applying the link a second time?
 
Err...
No
<link>€¹Ƈ
 
ah
or link-filter-link-each (though that's less efficient ofc)
 
How is it different from the existing filter?
 
The filter doesn't actually transform the elements it maps over
 
5:55 AM
Mmm okay
 
e.g. ẒƇ doesn't produce a list of booleans, but Ẓɦ would basically be "keep primes, then map each to 1" (kind of useless here, but it could be useful with different builtins)
Nope, ignore me, quartata had a better idea (I knew reading the Jelly room transcript would be a good idea):
in Jelly, Dec 13 '15 at 1:09, by quartata
I was thinking we could pull a Stuck and make the "register" an array.
Have a quick which "pushes" to the register array (or, repurpose © to do that), then have another (or repurpose ®) to pop from it
 

« first day (3811 days earlier)      last day (1036 days later) »