# Class 40: Variable-Arity Procedures

Back to Discussion of Exam 2. On to Tail Recursion .

Held: Tuesday, 11 November 2003

Summary: Today we consider how and why to write procedures that can take different numbers of arguments in different situations.

Related Pages:

Assignments

Notes:

• I've extended the due date on the latest assignment.

Overview:

• Definition of arity.
• Why have variable-arity procedures.
• How to write variable-arity procedures.
• Lab.

## Variable-Arity Procedures

• Def. Arity: The number of parameters a procedure expects.
• Some procedures naturally take varying numbers of parameters:
• `+` takes 0 or more parameters.
• `display` takes 1 or 2 parameters.
• `map` takes 2 or more parameters.
• It would be nice to be able to write our own procedures of variable arity (that is, varying numbers of parameters).
• Zero or more parameters:
```(lambda params
body)
```
• `params` is not parenthesized.
• In your body, treat `params` as a list.
• One or more parameters:
```(lambda (first . remaining)
body)
+ In your body, treating `remaining` as a list.
```
• Two or more parameters:
```(lambda (first second . remaining)
body)
+ In your body, treating `remaining` as a list.
```

## History

Thursday, 28 August 2003 [Samuel A. Rebelsky]

• Created automatically.

Back to Discussion of Exam 2. On to Tail Recursion .

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Tue Dec 9 13:59:55 2003.
The source to the document was last modified on Mon Sep 1 13:30:51 2003.
This document may be found at `http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2003F/Outlines/outline.40.html`.

You may wish to validate this document's HTML ; ; Check with Bobby

Samuel A. Rebelsky, rebelsky@grinnell.edu