(Procedures in Scratch: ta-da! citation found! :D)
(Procedures in Scratch: oops, forgot to hide template... :P)
Line 4: Line 4:
 
==Procedures in Scratch==
 
==Procedures in Scratch==
 
[[File:Jump Block.png|thumb|A "jump" procedure.]][[File:Jump block with insert.png|thumb|A "jump" procedure with an argument.]]
 
[[File:Jump Block.png|thumb|A "jump" procedure.]][[File:Jump block with insert.png|thumb|A "jump" procedure with an argument.]]
In [[Scratch 2.0]], procedures will be implemented.<ref>http://blog.scratch.mit.edu/2011/03/scratch-20-progress-report-create-your.html</ref> There will be a "My Blocks" section, where procedures in the project are stored.<ref>http://blog.scratch.mit.edu/2012/02/scratch-20-project-page-and-project.html</ref> The procedures will be local to each [[sprite]].{{citation needed}} <ref>http://scratch.mit.edu/forums/viewtopic.php?pid=719181#p719181</ref> Procedures in Scratch 2.0 will only be [[Stack Blocks]], not Reporter or Boolean block styles. It remains to see whether they will be [[recursion|recursive]] or not. Procedures are expected to take [[arguments]].
+
In [[Scratch 2.0]], procedures will be implemented.<ref>http://blog.scratch.mit.edu/2011/03/scratch-20-progress-report-create-your.html</ref> There will be a "My Blocks" section, where procedures in the project are stored.<ref>http://blog.scratch.mit.edu/2012/02/scratch-20-project-page-and-project.html</ref> The procedures will be local to each [[sprite]].<ref>http://scratch.mit.edu/forums/viewtopic.php?pid=719181#p719181</ref> Procedures in Scratch 2.0 will only be [[Stack Blocks]], not Reporter or Boolean block styles. It remains to see whether they will be [[recursion|recursive]] or not. Procedures are expected to take [[arguments]].
  
 
==Procedures in [[BYOB]]/Snap!==
 
==Procedures in [[BYOB]]/Snap!==

Revision as of 14:20, 29 April 2012

Clock.png This article or section contains information about a feature from a future version of Scratch that is unreleased and is subject to change. Please cite any additional info in order to prevent speculation.

Procedures, also called functions or methods, are a tool in many programming languages, which allow common blocks of code to be grouped and called by a single name. Blocks in Scratch are procedures themselves, as they are blocks of compiled code executed all at once. Procedures have inputs or Arguments, which are used to edit the procedure's effect slightly. For example, the "Move (10) steps" block has the numerical argument (the bracketed bit) which specifies the distance to be moved: 10 pixels in this case.

Procedures in Scratch

A "jump" procedure.
A "jump" procedure with an argument.

In Scratch 2.0, procedures will be implemented.[1] There will be a "My Blocks" section, where procedures in the project are stored.[2] The procedures will be local to each sprite.[3] Procedures in Scratch 2.0 will only be Stack Blocks, not Reporter or Boolean block styles. It remains to see whether they will be recursive or not. Procedures are expected to take arguments.

Procedures in BYOB/Snap!

Snap!, previously called BYOB (Build Your Own Blocks), is a Scratch modification that allows procedures. Snap!'s procedures allow all 3 types of blocks, with arguments, and also recursion.

Procedures in Squeak

Main article: Squeak Tutorial#Methods

Procedures in Squeak are called methods.

References

  1. http://blog.scratch.mit.edu/2011/03/scratch-20-progress-report-create-your.html
  2. http://blog.scratch.mit.edu/2012/02/scratch-20-project-page-and-project.html
  3. http://scratch.mit.edu/forums/viewtopic.php?pid=719181#p719181