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
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
@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.
@AaronMiller here's a hint: Ƈ works with monads and dyads, so if you have some monadic link F, then FƇ 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
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.
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
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!
@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?
@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 ¥
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 :(
@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)
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 :)