Scheme/Procedures

From Noisebridge
< Scheme(Difference between revisions)
Jump to: navigation, search
m (moved Scheme:Procedures to Scheme/Procedures: Create subpage)
 
(2 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
where <expressions> is one or more, well, expressions. Only the last expression's value is returned.<br />
 
where <expressions> is one or more, well, expressions. Only the last expression's value is returned.<br />
 
<args> is your variable definitions, which can take the following forms:
 
<args> is your variable definitions, which can take the following forms:
* '''var''' - all arguments are put into this single variable.
+
* '''var''' - all arguments are put into this single variable (as a list.)
 
* '''(var[1] var[2] ... )''' - specifies a fixed number of arguments.
 
* '''(var[1] var[2] ... )''' - specifies a fixed number of arguments.
 
* '''(var[1] var[2] ... . var[n])''' - a space-delimited period before the final argument specifies the remaining args (if any) to be put into a list under that variable.
 
* '''(var[1] var[2] ... . var[n])''' - a space-delimited period before the final argument specifies the remaining args (if any) to be put into a list under that variable.
 
<br />
 
<br />
 +
 
== Lexical Scoping ==
 
== Lexical Scoping ==
 
=== fluid-let ===
 
=== fluid-let ===
 
Modifies ''existing global variables'' instead of introducing new lexical ones. Values are reset at the end of the expression.
 
Modifies ''existing global variables'' instead of introducing new lexical ones. Values are reset at the end of the expression.
 +
<br />
 +
== Iteration  ==
 +
=== do ===
 +
<pre>
 +
(do
 +
  ((<var> <init> <step>) ... )
 +
  (<test> <expression>)
 +
  (<command> ... ))
 +
</pre>

Latest revision as of 19:28, 3 April 2011

Contents

[edit] Lambdas

  • Can also be viewed as anonymous procedures.
  • Has the following syntax:
(lambda <args> <expressions>)

where <expressions> is one or more, well, expressions. Only the last expression's value is returned.
<args> is your variable definitions, which can take the following forms:

  • var - all arguments are put into this single variable (as a list.)
  • (var[1] var[2] ... ) - specifies a fixed number of arguments.
  • (var[1] var[2] ... . var[n]) - a space-delimited period before the final argument specifies the remaining args (if any) to be put into a list under that variable.


[edit] Lexical Scoping

[edit] fluid-let

Modifies existing global variables instead of introducing new lexical ones. Values are reset at the end of the expression.

[edit] Iteration

[edit] do

(do
  ((<var> <init> <step>) ... )
   (<test> <expression>)
   (<command> ... ))
Personal tools