I don't think the category "Advanced" is suitable for this article... it's about scripting, not Scratch's technical features. What do you think?
Chrischb (talk | contribs) 06:39, 17 July 2010 (UTC)

I think that the advanced category needs to be deleted because all it tells is that an article is confusing to some people and not its uses or other useful things. --Archmage 01:08, 18 July 2010 (UTC)

@Chris: Good point... but what category do you think it would fit best in?
@Archmage: I think the advanced category is okay, it just means that something may not be understood by beginning Scratchers (Unless they work in Smalltalk as their hobby or job). Jwosty 02:01, 18 July 2010 (UTC)
How does someone know if they are advanced users or not? Seems really hard. If things are related to Smalltalk maybe you should have an explicit category for that. Advanced seems too general and not useful. --
andresmh (talk | contribs) 05:54, 18 July 2010 (UTC)
I personally do think that the advanced category is good for this topic, because recursion is something that goes above and beyond what a normal scratcher needs to know to make most projects, or basically 'advanced', and although it's not completely advanced right now, it's just incomplete.
Lucario621 (talk | contribs) 16:48, 18 July 2010 (UTC)

I think Andresmh is making a lot of sense but everyone seems to ignore him. What is advanced exactly? This article basically says calling a broadcast within a broadcast is advanced which is something I don't agree with. Someone who can delete categories should delete the advanced category. Having a whole advanced category is too broad I feel, I think it would be better as a subcategory for guides or something --Archmage 19:17, 18 July 2010 (UTC)

Eh, fine, whatever. I deleted it...
Lucario621 (talk | contribs) 19:25, 18 July 2010 (UTC)
You didn't delete the advanced category, its still there... I went ahead and cleaned the advanced catagory so that deleting it is easier for you.--Archmage 23:22, 18 July 2010 (UTC)

The advaced category should indeed be deleted. You might think it is advanced, someone else might think it's easy. What seems like Advanced Drawing techniques to you might be easy stuff for an artist. On to the next topic, this article is wrong :( Recursion is when a function or procedure or whatever calls itself so it runs inside itself. After the instance of the procedure stops, the original caller just continues. What is described in this article is just a loop, not recursion. Real recursion can not be programmed into normal Scratch. I say someone who's good at explaining programming techniques (Archmage? bharvey?) should change the article ^^ JSO 20:15, 18 July 2010 (UTC)

I'll drop both a message. Jwosty 18:16, 19 July 2010 (UTC)

Is this enough?

Okay, I did a pretty major edit to clarify that recursion isn't looping, and introducing the distinction between tail recursion (doable in Scratch) and embedded recursion (not).

Is this enough? One thing not included is a discussion of recursive reporters, e.g. for inductively defined functions like the Fibonacci sequence. If this were Wikipedia I'd definitely want to do that, and maybe even talk about recursive function theory, the branch of mathematics that studies those functions that can be defined recursively. But I think for the Scratch wiki, this may be all you need. What do you think? —Brian Harvey (talk) 00:47, 2 September 2010 (UTC)

2.0 and BYOB

Why was 2.0 split into its own section? It works fundamentally the same as in BYOB, albeit with some UI differences.
Scimonster (talk | contribs) 15:52, 20 May 2012 (UTC)

Hold on, I'm not done there... I'm going to add stuff like simulating recursive reporters, etc. There are plenty of interesting things in the 2.0 recursion mechanism.
Hardmath123 (talk | contribs) 15:54, 20 May 2012 (UTC)
I see. OK.
Scimonster (talk | contribs) 16:20, 20 May 2012 (UTC)

Recursion cannot (or cannot any longer) crash Scratch

See this project: [1]

Odd. I think the section "Crashing Scratch" should be removed. --
Jonathan50 (talk | contribs) 00:41, 8 April 2016 (UTC)

I agree. :/ Can we make this decision ourselves?
TheUltimatum (talk | contribs) 20:08, 7 October 2017 (UTC)

──────────────────────────────────────────────────────────────────────────────────────────────────── You actually can still, you just need a slightly more powerful script:

define recursion
repeat (10000)

The script shown above just had each function call itself once. That means that the call stack just grows by one each iteration. However, mine multiplies the call stack by 10000 each time, resulting in 10000n function calls where n is the number of iterations allowed, which will crash Scratch very quickly.
jvvg (talk | contribs) 20:46, 7 October 2017 (UTC)

It shouldn't, because it never actually gets to the second iteration of the repeat loop.
Jonathan50 (talk | contribs) 02:29, 10 October 2017 (UTC)