「再帰」の版間の差分

提供: Japanese Scratch-Wiki

16行目: 16行目:
 
</scratchblocks>
 
</scratchblocks>
 
==使い方==
 
==使い方==
再帰が使いやすいのは、同じ動作を繰り返したいものの、通常のループ文ではうまく再現できず、毎回条件を変えて繰り返したいときなどに有効である。また、[[スプライト]]の動きにかかわらず、データを処理する場面でも、上の画像のように分岐、分岐、また分岐した構造を処理したいときも有効である。
+
再帰が使いやすいのは、同じ動作を繰り返したいものの、通常の[[() まで繰り返す (ブロック)|ループ文]]ではうまく再現できず、毎回条件を変えて繰り返したいときなどに有効である。また、[[スプライト]]の動きにかかわらず、データを処理する場面でも、上の画像のような[https://ja.wikipedia.org/wiki/%E6%9C%A8%E6%A7%8B%E9%80%A0_(%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0) 樹形図]は、再帰を使うことで探索しやすくなる。
 +
 
 
{{stub}}
 
{{stub}}
 
[[de:Rekursion]]
 
[[de:Rekursion]]
 
[[en:Recursion]]
 
[[en:Recursion]]

2018年1月21日 (日) 01:07時点における版

再帰とは自分自身が自分自身を呼び出すプログラムのことである。また、循環参照のものも広義の再帰である。たとえば、フラクタルを描画するときなどに使用する。定義を利用するため、2.0から可能になった。

再帰を使った木のフラクタル

定義 コッホ曲線(長さ)
もし<(長さ::custom-arg)\>[1]>なら
コッホ曲線((長さ::custom-arg)/(3))
@turnLeft(60)度回す
コッホ曲線((長さ::custom-arg)/(3))
@turnRight(120)度回す
コッホ曲線((長さ::custom-arg)/(3))
@turnLeft(60)度回す
コッホ曲線((長さ::custom-arg)/(3))
でなければ
(長さ::custom-arg)歩動かす

使い方

再帰が使いやすいのは、同じ動作を繰り返したいものの、通常のループ文ではうまく再現できず、毎回条件を変えて繰り返したいときなどに有効である。また、スプライトの動きにかかわらず、データを処理する場面でも、上の画像のような樹形図は、再帰を使うことで探索しやすくなる。


Document stub.png この項目は、書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています。

内部エラー - Japanese Scratch-Wiki

内部エラー

提供: Japanese Scratch-Wiki

[XczSCJUES9bFdBIayo7HlwAAAEg] /w/index.php?title=%E5%86%8D%E5%B8%B0&diff=prev&oldid=6030 TypeError from line 123 of /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php: Argument 2 passed to PageImages\Hooks\LinksUpdateHookHandler::scoreFromTable() must be of the type array, integer given, called in /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php on line 90

Backtrace:

#0 /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php(90): PageImages\Hooks\LinksUpdateHookHandler->scoreFromTable(integer, integer)
#1 /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php(55): PageImages\Hooks\LinksUpdateHookHandler->getScore(array, integer)
#2 /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php(32): PageImages\Hooks\LinksUpdateHookHandler->doLinksUpdate(LinksUpdate)
#3 /home/scratchwiki/wikis/ja/w/includes/Hooks.php(195): PageImages\Hooks\LinksUpdateHookHandler::onLinksUpdate(LinksUpdate)
#4 /home/scratchwiki/wikis/ja/w/includes/deferred/LinksUpdate.php(176): Hooks::run(string, array)
#5 /home/scratchwiki/wikis/ja/w/includes/jobqueue/jobs/RefreshLinksJob.php(276): LinksUpdate->doUpdate()
#6 /home/scratchwiki/wikis/ja/w/includes/jobqueue/jobs/RefreshLinksJob.php(117): RefreshLinksJob->runForTitle(Title)
#7 /home/scratchwiki/wikis/ja/w/includes/jobqueue/JobRunner.php(275): RefreshLinksJob->run()
#8 /home/scratchwiki/wikis/ja/w/includes/jobqueue/JobRunner.php(185): JobRunner->executeJob(RefreshLinksJob, LBFactorySimple, BufferingStatsdDataFactory, integer)
#9 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(941): JobRunner->run(array)
#10 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(900): MediaWiki->triggerJobs()
#11 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(720): MediaWiki->restInPeace(string)
#12 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(739): MediaWiki->{closure}()
#13 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(543): MediaWiki->doPostOutputShutdown(string)
#14 /home/scratchwiki/wikis/ja/w/index.php(43): MediaWiki->run()
#15 {main}