« first day (1524 days earlier)      last day (1148 days later) » 

00:57
Hey @AaronMiller, welcome to JHT!
I'd suggest we start, but chat is likely to be going down in a few minutes for an hour or less :/
That’s ok, I’m on mobile right now anyway
How much do you already know about tacit programming?
I think it’s basically a bunch of functions strung together, to create larger functions? Idk
01:06
Sort of yes :P
Essentially, every "command" in Jelly can be divided into one of "atoms", "quicks" and "syntax". Atoms are generally the easiest to get started with, quicks are more complicated. Syntax ranges from complex to simple
Atoms are functions that take 0, 1 or 2 arguments and return a single value, based on their meaning. 0 args = nilads, 1 = monads, 2 = dyads
You can find a full list of atoms here, divided by arity and whether they're digraphs or not
hmmm maybe i will try making a video tutorial series
just for basic cuz that's all i'm good at lol
The way a normal Jelly program is executed: We begin with a "pass-through" value, typically the value passed as the first command line argument. The parser then repeatedly "chops off" the first few bits in the program, creates a new pass-through value based on those and continues until the program is empty
As a basic starting point, I'd suggest taking a look through these exercises, and giving them a go. Don't necessarily try to get the minimum score for the longer ones, just try to get a working solution
01:56
@cairdcoinheringaahing I’m trying to solve the challenge to “Find the largest list of consecutive positive integers that sum to N,” and so far I have Ẇ§ to find the sum of each sublist of numbers less than N, but I can’t figure out how to use Ƈ to filter out those that don’t sum to N.
02:12
@AaronMiller here's a hint: Ƈ works with monads and dyads, so if you have some monadic link F, then keeps elements k in x such that F(k), but if you have some dyadic link ×, then ×Ƈ will keep elements such that k × y is truthy, and so Ƈ returns a link of the same arity
02:22
Another hint: one way of removing all elements from a list that don't equal a number is just . That might be usedul
mfw I have 6 bytes for this
02:50
I feel like I’m getting close with Ẇ§=Ƈ, but it seems to be summing each sublist, then filtering out each sum that isn’t N. I’m pretty sure I need Ƈ to take §= as the condition, but I don’t know how to tell it that.
there are quicks for grouping things
although note that Ƈ calls its operand on each element of the left argument, rather than the whole list, so you may then want to substitute S for § (good job finding § btw lol)
@hyper-neutrino I think I just got 5 but it times out on TIO for 100
well the six is easy to get by just doing what aaron's doing but with the combinator and then tailing but that takes too many bytes
i'll think more about this later
i've definitely done all of these challenges in the target bytecount before so ¯\_(ツ)_/¯
I’ve got 5 bytes, but it returns all sublists that sum to N, and I can’t figure out how to use tail to get only the last, or largest, one: Try it online!
yeah what I was about to say is from there "and then tailing" takes 2 bytes lol
due to chaining
03:08
oh wait yeah i didn't actually try my solution so
7 oops
forgot about 2,1
ah wait i got it
ad66721d74705119a1a6372f2c250d3b
What’s 2,1 mean?
...i've forgotten what kind of hash we use
MD5
3a118ee1f33eb1b9636bbef8850897f8 works as well, same idea
@AaronMiller if you have a dyad + followed by a monad F in a monadic chain, the new value becomes v + F(x) where x is the left argument of the chain
it's sort of like the S-combinator lyxal added to vyxal although it modifies the existing value based on the left argument
03:13
okay yeah i have ad66721d74705119a1a6372f2c250d3b
and... a0624dfd35773519ba7a7d6f83f473de
342e50d5f7e38aa30ecc9ddb0c6b065c
oh of course that's 3a118ee1f33eb1b9636bbef8850897f8
@hyper-neutrino So, to use tail to get the final answer, I have to do it as a separate chain, like µṪ, or else it gets interpreted completely differently?
you can do just about anything that breaks the 2,1
or rather, doesn't put them in a 2,1 together
That makes sense. Unfortunately, I should probably go to bed now, but I’m gonna practice some more tomorrow! o/
@UnrelatedString in case you feel like wasting any time figuring out what this was, I just used instead of (since the longest one has to be the lexicographically earliest)
well you've already solved it in 7 and the 5 byter is a bit more obscure
I personally had ¹ in the place of your µ but you can do all kinds of stuff, up to a leading ð or a trailing ¥
the absolute silliest is Ṫ⁺
03:56
@UnrelatedString is that just double tail?
that is cursed
two projects I want to work on now that JHT / tacit seems more popular / active with learners - a jelly parse tree visualization / explainer, and a video series
but I also have a job and I am developing yuno and I play video games too much in my little remaining time so... rip me :(
i'm going to see if i can throw a visualizer together now
 
11 hours later…
14:36
So, when I complete challenges in the list, should I post them in here?
@AaronMiller That sounds like a good idea; you can either throw it into an MD5 hasher like this one or just spoiler it by posting a TIO link rather than the code, just so other people who haven't solved it (if/when there are any) won't see it by accident
(the former is better when multiple people are solving and want to see if anyone's gotten the same solution without knowing what that is; the latter is better for if you are sending your answer to someone teaching you so they can check it out)
Create an N×M 2D array (list of lists) of anything: 2 bytes - tio.run/##y0rNyan8///hru6g////m/43BgA
very nice. there's another 2-byte solution you can get using a quick
14:53
Is this what you were talking about? tio.run/##y0rNyan8///hru5HTWv@H14e@f@/6X9jAA
Oh, it actually wasn't, but that's a good solution too
 
2 hours later…
16:48
Draw a square with side length N: 6 bytes - tio.run/##y0rNyan8/9/g4a5uICo@tDXy////lgA
17:48
Very nice! Yes, this looks right to me. To be super technical about it, 4+×¥80 is a niladic chain that starts with a nilad so it becomes the monadic chain +×¥80 evaluated on 4.
Then, since that monadic chain doesn't start with a nilad, the initial value is equal to the left argument, 4
so we evaluate +×¥80, which is a 2,0-chain, and thus set the current value to called on the current value and 80
and the rest of the explanation you gave is perfect :)
18:00
:)
Imma go eat now, o/

« first day (1524 days earlier)      last day (1148 days later) »