再帰というのは、関数やメソッドから自分自身の関数やメソッドを呼び出すこと。Scratchだと、ブロック定義から同じブロック定義を呼び出す場合が再帰です
具体的には↓このようになります。ただし、このままだと、永遠にプログラムが終わらないので、何かしらの終了条件をつける必要があります
ねこを5歩動かすプログラムです。「(5)歩動かす」を使えばあっという間ですが、ここは再帰の説明なので、あえて回りくどい方法になっています
自分自身のブロックを呼び出す時の引数を1ずつ減らすことで、処理が無限に続かないようにしています
このプログラムがどのように実行されるのかを図にしたのがこちらです
自分自身のブロック定義を次々に呼び出して、指定した回数を呼び出したら、今度は呼び出し元にどんどんさかのぼって行きます
こちらは指定した値までの合計を計算する再帰です
コッホ曲線
再帰を使うと、面白い図形がいろいろと描けます。コッホ曲線もその1つ。よくみると同じような図形が何度も登場してるのがわかると思います
こちらがベースとなる図形
ペーズの図形に同じ図形が含まれた図形
さらに含まれた図形
さらにさらに含まれた図形。もうこれ以上再帰を深くしても線が汚くなるだけなので終わります
プログラムはこうなります
再帰を使えば、木のような図も描けます

再帰を深くするとメモリを大量に消費するので、ご利用はほどほどに!