Scheme/Procedures: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
No edit summary
m (moved Scheme:Procedures to Scheme/Procedures: Create subpage)
 
(One intermediate revision by one other user 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 ===

Latest revision as of 19:28, 3 April 2011

Lambdas[edit]

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


Lexical Scoping[edit]

fluid-let[edit]

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

Iteration[edit]

do[edit]

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