Scheme/Procedures: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
No edit summary
No edit summary
Line 12: Line 12:
=== 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>

Revision as of 23:12, 2 April 2011

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.
  • (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.


Lexical Scoping

fluid-let

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

Iteration

do

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