You've obviously not used this sort of thing before - it's a very common operation when using the join block to join a list to make it into a string
Wait! What do you mean? In Snap you use "with input list" or "with inputs" all the time, at least in BJC you do:
That's the exact same thing. In this case you need to replace the variadic input with an input list. Whenever you recursively traverse a list you need the recursive call to to just that:
Notice how this is not "dropping a list on the variadic arrow", but replacing the variadic input with a list.
Okay, a while ago everybody knew the basics of programming. We've apparently come too far in abstracting these fundamentals away from y'all that nowadays performing recursion on lists has become a lost art. Even here at the tabernacle of SICP! Clearly The End is Nigh.
what do most input lists do?
I don't understand your question, an input list is data and doesn't do anything. Because it's a list this makes the function variadic, meaning for "any number of inputs". If you only use the expansion arrows your expressions always have a fixed number of inputs. It's the "input list" feature that makes them VARYadic.
Before, i used it like this: (i never noticed the red halo when a list hover over a block with variadic inputs)
not like this:
I know multiple variadic inputs result in a list inside a block, but a don't know i can drop a list on the block when a red halo is present.
I found this in the manual:
Never noticed before.
Thank you, i learn something new every day !
I think it's because JOIN block is hyperized...
What you meant is right, but I think this is a confusing way to say it. The result of this notation is to replace the variadic input with a list, but the mechanism by which you achieve this replacement is to drop the list on the arrowheads.
Oops it needs an index entry, but here it is:
I am way, way behind on updating the manual. I'm usually a little behind, because I can't really document things until we've worked out exactly what they look like, which isn't typically decided until just before a release, and nobody wants to hold up a release until I get the manual revisions done. But in the past few years I let this task get way away from me. I'll try to do better.
But this "input list:" feature has been around since forever, so it's in the manual!
One question about:
What's objective of extension + block, when multiplication replace a long adding?
Is to sum all the numbers. For example:
2 + 3 = 5 (the default block)
2 + 3 + 4 = 9 (with the new variadic inputs)
Yes, but you also can:
So it a new thing have to simplify + block?
Exactly...
So something like as adding some unnecessary things, but I'm not complaining
Btw, you can put input lists as well!
I think you put a ring in where a list should be.
Well... Yes, but check again, it's ringed... It should not error
Because I THINK They Wanna Fix Bugs And Make New Stuff
Anyone using a version of Snap! before 7.3.0 should know that any projects saved in 7.3.0 will turn any blocks with new syntax into undefined!
. E.g. a model with 2+2
will not run in earlier versions.
Yeah, that's why while 7.3 was the dev version, it put up a window warning users not to save projects. Our theory is that once your browser cache is caught up with 7.3, you're never going to go backward. There can be a problem only if you use two computers and one of them hasn't caught up.
How do you make a block red?
He's using a custom category.